列表节点上的Xml serialize get属性

时间:2017-01-09 12:33:56

标签: c# xmlserializer

我目前有这样的结构

//make loader visible
loaderService.setIsRequesting(true);
//make loader hide
loaderService.setIsRequesting(false);

这对于它的目的非常有用,但是给出了这个xml

[XmlRoot("command")]
public class Command
{
    [XmlArray("itemlist")]
    [XmlArrayItem("item")]
    public List<Item> Items { get; set; }
}

[XmlRoot("item")]
public class Item
{
    [XmlAttribute("itemid")]
    public string ItemID { get; set; }
}

反序列化时如何从<command> <itemlist totalsize="999"> <item itemid="1"> <item itemid="2"> ... </itemlist> </command> 获取totalsize? XML是我收到的,而不是我能控制的东西 我不是在寻找itemlist或类似的,而是纯粹使用xmlserializer

1 个答案:

答案 0 :(得分:2)

您需要将itemlistitem分成两个类。

[XmlRoot("command")]
public class Command
{
    [XmlElement("itemlist")]
    public ItemList ItemList { get; set; }
}

public class ItemList
{
    [XmlAttribute("totalsize")]
    public int TotalSize { get; set; }

    [XmlElement("item")]
    public List<Item> Items { get; set; }
}

public class Item
{
    [XmlAttribute("itemid")]
    public string ItemID { get; set; }
}

另外,请注意XmlRoot属性仅与 root 元素相关。在此实例中,Item上的那个被忽略。