Bonjour,

Mon problème est le suivant : je reçois de la part d'un service REST un XML, qui contient une liste d'éléments.
J'aimerais la "déserializer". Mais je n'y arrive pas car la balise qui contient ma liste n'est pas comprise par la classe XmlSerializer.
Supposons que je reçoit une collection d'objet "Personne".
Le code XML renvoyé par le webservice est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?xml version="1.0" encoding="UTF-8"?>
<Personnes>
	<Personne>
		<Nom>Toto1</Nom>
	</Personne>
	<Personne>
		<Nom>Toto2</Nom>
	</Personne>
</Personnes>
En gros, le webservice englobe par une balise au pluriel la collection renvoyée.
Je ne sais pas comment définir un objet permettant de désérializer cela.
J'ai correctement généré une classe "Personne" grâce à xsd.exe et le xsd qui correspond.
J'essaye de désérializer grâce à ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 XmlSerializer xs = new XmlSerializer(typeof(Personne[]));
 
            // On déserialise une liste de Personnes
            Personne[] Liste_Personne;
            using (StreamReader rd = new StreamReader("2_Personnes.xml"))
            {
                Liste_Personne = xs.Deserialize(rd) as Personne[];
            }
Mais cela ne marche pas. Lors de l'execution, cela lève une exception disant que la balise "Personnes" n'était pas attendu.
C'est logique mais je ne sais pas comment contourner ce problème.

Merci par avance.