XmlSerializer的反序列化列表containig属性
问题描述:
我的XML结构的一部分,看起来像这样:XmlSerializer的反序列化列表containig属性
<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属性?
我试图做OT在这里显示的方式:
http://www.codemeit.com/xml/c-xmlserializer-add-an-attribute-to-an-array-element.html
但它并没有为我工作。数组的元素没有被反序列化。
答
没有简单的方法来做到这一点。
一个好的解决方案是创建一个包含列表和属性并继承/实现IXmlSerializable的对象。
我在这个网站上看到了一种快速和肮脏的方式:http://funcakes.posterous.com/adding-elements-to-lists-in-the-xmlserializer。由于该对象不是从ISerializable继承的,所以它不会被串行器序列化为一个列表。