Как добавить атрибут в элемент XmlArray (Сериализация XML)? - PullRequest
31 голосов
/ 27 июня 2009

Как добавить атрибут в элемент XmlArray (не в XmlArrayItem) при сериализации объекта?

1 Ответ

70 голосов
/ 27 июня 2009

XmlArray используется, чтобы указать xmlserializer обрабатывать свойство как массив и сериализовать его в соответствии с его параметрами для имен элементов.

[XmlArray("FullNames")]
[XmlArrayItem("Name")]
public string[] Names{get;set;}

даст вам

<FullNames>
    <Name>Michael Jackson</Name>
    <Name>Paris Hilton</Name>
</FullNames>

Чтобы добавить атрибут xml к элементу FullNames, вам нужно объявить класс для него.

[XmlType("FullNames")]
public class Names
{
   [XmlAttribute("total")]
   public int Total {get;set;} 
   [XmlElement("Name")]
   public string[] Names{get;set;}
}

Это даст вам

<FullNames total="2">
    <Name>Michael Jackson</Name>
    <Name>Paris Hilton</Name>
</FullNames>
...