Jeszcze jedno pytanie o serializację XML z .Net.Deserializowanie tablicy XML w katalogu głównym dokumentu
Otrzymuję ciąg znaków XML od strony trzeciej i chcę przetworzyć go w klasie .Net przy minimalnym zamieszaniu. Nie chcę używać xsd, ponieważ mój XML jest dość prosty i nie podoba mi się to, że wypluwa pełne klasy. Mam podstawy operacji deserialization, ale mam problemy z tablicą poziomu root.
Problem XML jest jak poniżej:
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
Jak mogę mapować atrybuty na moim C# osoby klasy, aby go deserialise?
To jest to, co chciałbym pracować, ale tak nie jest.
[Serializable()]
[XmlRootAttribute("people", Namespace = "", IsNullable = false)]
public class People
{
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
Gdybym magiel XML do:
<result>
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
</result>
Następnie współpracuje z definicji klasy poniżej, ale czuje się bardzo źle.
[Serializable()]
[XmlRootAttribute("result", Namespace = "", IsNullable = false)]
public class People
{
[XmlArray(ElementName = "people")]
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
Nie potrzebujesz '[Serializable]', btw - nie jest używane przez 'XmlSerializer' –