我有xml,结构的一部分看起来像这样:
<IDList>
<ValuesList ID="1">
<Value>1</Value>
<Value>2</Value>
<Value>3</Value>
</ValuesList>
<ValuesList ID="2">
<Value>1</Value>
<Value>2</Value>
<Value>3</Value>
</ValuesList>
</IDList>
xmlserializer的模型类应该是什么,所以我可以正确地反序列化它? 在IDList的层面上,这很容易:
[XmlArray("IDList")]
[XmlArrayItem("ValuesList")]
public List<CValuesList> idList = new List<CValuesList>();
但是当数组元素有额外的xml属性时怎么办呢?
我尝试按照此处显示的方式进行操作:
http://www.codemeit.com/xml/c-xmlserializer-add-an-attribute-to-an-array-element.html
但它对我不起作用。数组的元素尚未反序列化。
答案 0 :(得分:0)
没有简单的方法可以做到这一点。
一个好的解决方案是创建一个包含列表和属性的对象,并继承/实现IXmlSerializable。
我在这个网站上看到了某种快速而肮脏的方式:http://funcakes.posterous.com/adding-elements-to-lists-in-the-xmlserializer。由于该对象不从ISerializable继承,因此序列化程序不会将其序列化为列表。