我无法解决此问题:
我的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类,带有/或属性为CollectionProp的属性“item”。
这是我的执行声明:
var result = client.Execute<List<Item>>(request);
编辑8月19日:
好吧,我的帖子可能没有明确指出我的问题。 所以现在我觉得我把问题分解为以下几点:XmlDeserializer在区分
下的项目和项目时遇到问题所以响应有2个项目,每个项目下面有3个项目,我的反序列化结果有8个对象。第一个是值,下一个是3,属性设置为null,第四个是值,等等......
任何想法如何以这样的方式解决这个问题:需要将项解析为objectA,item下的项,是root下项的子项,是否需要解析为objectB?
答案 0 :(得分:1)
如果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>