C # десериализировать массив как корневой элемент - PullRequest
0 голосов
/ 04 октября 2019

У меня есть XML-документ, который мне нужно десериализовать, где корневой элемент представляет собой массив элементов, например

<Items>
  <Item></Item>
  <Item></Item>
</Items>

Я попытался создать класс, который наследуется от коллекции, такой как ...

public class Items : IEnumerable<Item>

но я не смог заставить его работать. Я получаю сообщение об ошибке, <items> не ожидается. Я даже не уверен, что возможно сделать то, что я пытаюсь сделать.

1 Ответ

2 голосов
/ 04 октября 2019

Следующее объявление класса Items работает так, как вам нужно:

[XmlRoot("Items")]
public class Items : List<Item>
{
}

XmlRootAttribute добивается цели, сообщая XmlSerializer о корневом элементе. Затем он ожидает элементы для элементов, названных в соответствии с классом Item.

...