【发布时间】:2017-03-23 07:40:12
【问题描述】:
我有以下 xml 文件:
<ItemList>
<Item id="item-aa-00" status="TYPE1">
<Elements>
<element>element121</element>
</Elements>
</Item>
<Item id="item-aa-01" status="TYPE2">
<Elements>
<element>element122</element>
<element>element123</element>
<element>element124</element>
</Elements>
</Item>
</ItemList>
我正在尝试使用以下模型对其进行反序列化:
[DataContract]
public enum ItemStatusEnum
{
[EnumMember(Value = "TYPE1")]
TYPE1 = 10,
[EnumMember(Value = "TYPE2")]
TYPE2 = 20
}
[XmlRoot("Item")]
[DataContract(Name = "Item")]
public class ItemDto
{
[DataMember(Name = "id")]
[XmlAttribute(AttributeName = "id")]
public string Id { get; set; }
[DataMember(Name = "candidateElements")]
[XmlIgnore]
public IEnumerable<string> Elements { get; set; }
[XmlArray("Elements")]
[XmlArrayItem("element"), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public List<string> CandidateElementsSurrogate { get { return Elements .ToList(); } set { Elements = value; } }
[DataMember(Name = "status")]
[XmlAttribute(AttributeName = "status")]
public ItemStatusEnum Status { get; set; }
public ItemDto()
{
this.Elements = new List<string>();
}
}
[XmlRoot("ItemList")]
[DataContract(Name = "ItemListDto", Namespace = "")]
public class ItemListDto
{
[XmlElement("Item")]
[DataMember(Name = "myElements")]
public List<ItemDto> myElements { get; set; }
}
此模型设法反序列化我的 xml 文件,但 Elements 集合仍然为空。我错过了什么?
【问题讨论】:
-
如果我掩盖了某些内容,但我没有看到您在列表中添加任何内容,请原谅我。
标签: c# .net xml deserialization xmlserializer