XML-атрибуты и коллекции - PullRequest
       1

XML-атрибуты и коллекции

1 голос
/ 30 октября 2010

У меня есть XML-файл, что-то вроде этого:

<root>
   <groups>
      <group />
      <group />
   </groups>
</root>

Теперь я хочу сделать класс примерно так:

[XmlRoot]
public class Root
{
   [XmlElement("groups")]
   public Groups Groups { get; set; }
}

Проблема в том, что атрибут XmlElementсоздаст все элементы коллекции с именем «groups», и я получу что-то вроде этого:

<root>
   <groups />
   <groups />
</root>

И если я оставлю атрибут XmlElement выключенным, он фактически напечатает файл с узлами коррекции, ноимя узла заперто:

<root>
   <Groups>
      <group />
      <group />
   </Groups>
</root>

Это очень раздражает.Как я могу сказать, чтобы это было имя в нижнем регистре (или любое другое имя, которое я хочу) для файла xml, но чтобы оно было в качестве регистра Pascal в моем исходном коде, в то же время указав, какими должны быть имена вложенных элементов?

Спасибо

1 Ответ

3 голосов
/ 30 октября 2010

Если я вас правильно понял, для чтения этого XML-файла вам нужно использовать XmlArrayAttribute и XmlArrayItemAttribute.

[XmlRoot]
public class Root
{
    [XmlArray("groups")]
    [XmlArrayItem("group")]
    public List<Group> Groups { get; set; }
}

[XmlType]
public class Group
{
}
...