i have some trouble getting this to work:
my xml looks like:
<root>
<item>
<id></id>
<name></name>
<CollectionProp>
<item>
<id></id>
<name></name>
</item>
</CollectionProp>
</item>
</root>
my class looks like:
public class Item
{
public int id { get; set; }
public string name { g开发者_如何转开发et; set; }
public List<CollectionProp> CollectionProp { get; set; }
}
and another one:
public class CollectionProp
{
public int id { get; set; }
public string name { get; set; }
}
i also tried to wrap another class around CollectionProp
CollectionPropCollection : List<CollectionProp>
Also tried: CollectionPropCollection class with / or with a property "item" of type CollectionProp.
here's my execute statement:
var result = client.Execute<List<Item>>(request);
EDIT Aug 19:
ok, my post may not clearly pointed out my problem. so now i think i broke down the problem to the following:
the XmlDeserializer has a problem to distinguish between the item under and the item under
so the response has 2 items under and each has 3 items under , my deserialized result has 8 objects. the first with values, the next 3 with properties set to null, the 4th with values and so on....
any idea how i can solve this in a way like : item under needs to be parsed into objectA, item under , which is a child of item under root, needs to be parsed into objectB ?
If the xml file is a serialized Item
you can do this:
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();
UPDATE
When it's a list of Items you just replace typeof(Item)
with typeof(List<Item>)
and you cast it to a List<Item>
精彩评论