Еще один вопрос о сериализации XML с .Net.
Я получаю строку XML от третьего лица и хочу разобрать ее в класс .Net с минимумом суеты.Я не хочу использовать xsd, так как мой XML довольно прост, и мне не нравятся подробные классы, которые он выплевывает.У меня есть основы работы десериализации, но я борюсь с массивом корневого уровня.
Проблема XML заключается в следующем:
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
Как мне сопоставить атрибуты на моем C #Люди учатся десериализовать его?
Это то, что я хотел бы работать, но это не так.
[Serializable()]
[XmlRootAttribute("people", Namespace = "", IsNullable = false)]
public class People
{
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
Если я искажу XML в:
<result>
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
</result>
Тогда он работает с приведенным ниже определением класса, но выглядит очень неправильно.
[Serializable()]
[XmlRootAttribute("result", Namespace = "", IsNullable = false)]
public class People
{
[XmlArray(ElementName = "people")]
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}