Я пытаюсь написать общий метод, который можно использовать для десериализации xml в массив объектов.
Учитывая XML, который выглядит так:
<people>
<person>
<someElement>content</someElement>
</person>
<person>
<someElement>more content</someElement>
</person>
</people>
Показано вкод ниже xmlDoc
.И класс person
как T
XmlNodeReader reader = new XmlNodeReader(xmlDoc.DocumentElement);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]), new XmlRootAttribute(xmlDoc.DocumentElement.Name));
results = xmlSerializer.Deserialize(reader) as T[];
Это работает, как ожидается, и возвращает person[]
с 2 записями.
Однако в API, с которым я работаю, есливозвращается только 1 результат, он просто возвращает:
<person>
<someElement>content</someElement>
</person>
И моя десериализация выходит из строя.person[]
остается пустым.
Есть какие-нибудь мысли о том, как лучше всего это реализовать?
Редактировать
Я собираюсь запустить XSLT между ними и передать имяT
in, если он совпадает с корневым узлом, то добавить узел обтекания?