[英]RestSharp Deserialize a List in a List
我在让它工作时遇到了一些麻烦:
我的 xml 看起来像:
<root>
<item>
<id></id>
<name></name>
<CollectionProp>
<item>
<id></id>
<name></name>
</item>
</CollectionProp>
</item>
</root>
我的 class 看起来像:
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 周围包裹另一个 class
CollectionPropCollection : List<CollectionProp>
还尝试过:CollectionPropCollection class 带有/或带有 CollectionProp 类型的属性“项目”。
这是我的执行语句:
var result = client.Execute<List<Item>>(request);
编辑 8 月 19 日:
好的,我的帖子可能没有明确指出我的问题。 所以现在我认为我将问题分解为以下几点:
XmlDeserializer 有问题区分下的项目和下的项目
所以响应有 2 个项目,每个项目有 3 个项目,我的反序列化结果有 8 个对象。 第一个带有值,接下来的 3 个带有属性设置为 null,第四个带有值等等....
任何想法我可以如何解决这个问题:需要将下的项目解析为objectA,下的项目,它是根下的项目的子项,需要解析为objectB?
如果 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.