Ancora un'altra domanda sulla serializzazione XML con .Net.Deserializzare array XML nella root del documento
Sto ricevendo una stringa XML da una terza parte e voglio analizzarla in una classe .Net con il minimo sforzo. Non voglio usare xsd dato che il mio XML è piuttosto semplice e non mi piacciono le classi prolisse che sputa. Ho le basi della deserializzazione funzionante ma sto lottando con un array di livello root.
Il problema XML è la seguente:
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
Come posso map gli attributi sulla mia classe C# persone a deserialise esso?
Questo è quello che mi piacerebbe lavorare ma non è così.
[Serializable()]
[XmlRootAttribute("people", Namespace = "", IsNullable = false)]
public class People
{
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
Se manipolare i XML:
<result>
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
</result>
allora funziona con la definizione della classe di sotto ma si sente molto male.
[Serializable()]
[XmlRootAttribute("result", Namespace = "", IsNullable = false)]
public class People
{
[XmlArray(ElementName = "people")]
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
non è necessario '[Serializable]', btw - non è usato da 'XmlSerializer' –