如何反序列化XML子元素

时间:2018-05-23 09:47:13

标签: c# xml xml-serialization

我有以下课程:

[XmlElement]
public class Container
{
   [XmlAttribute]
   public string Name { get; set; }

   //TODO: set xml serialization attribute.
   public List<Item> Items { get; set; }
}

我应该在Itmes属性上使用什么属性,以便在给定以下XML的情况下将子元素反序列化到列表中:

<Container Name="Container1">
   <Item>
   <Item>
   <Item>
</Container>

2 个答案:

答案 0 :(得分:1)

使用CollectionDataContract。您的Item是容器内的集合,因此它们应该是Container的一部分而不是单独的列表属性。

[CollectionDataContract(Name = "Container", Namespace = "")]
public class Container : System.Collections.Generic.List<Item>
{
     [XmlAttribute]
     public string Name { get; set; }
}

[DataContract(Name = "Item", Namespace = "")]
public class Item
{
   // Properties
}

答案 1 :(得分:1)

这是我需要的属性:

[XmlElement("Item")]