以下XML一个ArrayList是序列化资产OBJETS反序列化XML到对象在C#
<ArrayOfAsset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Asset>
<name>bill</name>
<type>perosn</type>
</Asset>
<Asset>
<name>bill</name>
<type>perosn</type>
</Asset>
</ArrayOfAsset>
我可以用默认的C#解串器没有问题,这反序列化的ArrayList的结果。如果我的根元素从ArrayOfAsset更改为资产,我的解串器爆炸了。我怎样才能让我的解串器知道这个变化。
这里是我的反串行化代码:
StreamReader sr = new StreamReader("c:\\assest.xml");
string r = sr.ReadToEnd();
List<Asset> list;
Type[] extraTypes = new Type[1];
extraTypes[0] = typeof(Asset);
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(List<Asset>), extraTypes);
object obj = serializer.Deserialize(xReader);
list = (List<Asset>)obj;
序列化程序是否要写入您正在反序列化的XML,或者您是否有其他源? – driis
“XmlSerializer”类预计XML的格式与它生成的格式相同,而不是您的任意格式。您需要为此编写自己的XML反序列化类。 – Polynomial