在List中反序列化List
本文关键字:List 反序列化 | 更新日期: 2023-09-27 18:05:38
我有一些麻烦让这个工作:
我的XML看起来像:
<root>
<item>
<id></id>
<name></name>
<CollectionProp>
<item>
<id></id>
<name></name>
</item>
</CollectionProp>
</item>
</root>
我的类是这样的:
public class Item
{
public int id { get; set; }
public string name { get; set; }
public List<CollectionProp> CollectionProp { get; set; }
}
和另一个:
public class CollectionProp
{
public int id { get; set; }
public string name { get; set; }
}
我还试图围绕CollectionProp包装另一个类
CollectionPropCollection : List<CollectionProp>
也尝试:CollectionPropCollection类与/或与属性"item"类型的CollectionProp。
下面是我的execute语句:
var result = client.Execute<List<Item>>(request);
EDIT Aug 19:
好吧,我的帖子可能没有清楚地指出我的问题。所以现在我想我把问题分解成以下几个部分:XmlDeserializer在区分
下的项和 下的项时存在问题。所以响应下面有2项,每个下面有3项,我的反序列化结果有8个对象。第一个有值,接下来的3个属性设置为null,第四个有值,依此类推....
如果xml文件是一个序列化的Item
,你可以这样做:
XmlSerializer serializer = new XmlSerializer(typeof(Item)); //or if you have a item variable item.GetType()
FileStream stream = new FileStream(pathToFile, FileMode.Open, FileAccess.ReadWrite);
Item item = (Item) serializer.Deserialize(stream);
stream.Close();
更新当它是一个项目列表时,您只需将typeof(Item)
替换为typeof(List<Item>)
并将其转换为List<Item>