список десериализации xmlserializer, содержащий атрибуты - PullRequest
1 голос
/ 25 августа 2011

У меня есть 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

но у меня это не сработало. Элементы массива не были десериализованы.

1 Ответ

0 голосов
/ 06 сентября 2011

Простого способа сделать это не существует.

  • Хорошим решением будет создание объекта, который содержит список и ваши свойства и наследует / реализует IXmlSerializable.

  • Я видел какой-то быстрый и грязный способ на этом сайте: http://funcakes.posterous.com/adding-elements-to-lists-in-the-xmlserializer. Поскольку объект не наследуется от ISerializable, он не будет сериализован как списоксериализатор.

...