1

我有部分结构看起来像这样的 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

但这对我不起作用。数组的元素尚未反序列化。

4

1 回答 1

0

没有简单的方法可以做到这一点。

  • 一个好的解决方案是创建一个包含列表和您的属性并继承/实现 IXmlSerializable 的对象。

  • 我在这个网站上看到了某种快速而肮脏的方式:http: //funcakes.posterous.com/adding-elements-to-lists-in-the-xmlserializer。由于该对象不是从 ISerializable 继承的,因此它不会被序列化程序序列化为列表。

于 2011-09-06T17:27:00.237 回答