2009-06-27 2 views

ответ

66

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> 
+0

да, я знаю, что это .. Может быть, я не объяснить правильно .. дайте мне объяснить с помощью примера Майкл Джексон Paris Hilton Посмотрите атрибут «total» для элемента ArrayOfString. Как это получить? – 123Developer

+0

у вас есть [XmlAttribute ("total")] public int Total {get {return Names.Length;} set {}} или аналогичный; обратите внимание на «ничего не делать» сеттера. –

+0

(... с использованием того же подхода, что и codemeit, как было показано, объявить его) –