Bonjours j'aimerai mettre en place la serialisation d'une liste d objet en xml mais lorsque j'écrit dans mon fichier xml j'ai cette erreur :

Erreur lors de la génération du document XML.
je ne voit pas d'ou peux provenir mon erreur.
Voici le code que j'utilise :

classe Personne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
 
namespace Serialisation.Data
{
    public class Personne
    {
        [XmlAttribute("nom")]
        public string Nom { get; set; }
 
        [XmlAttribute("prenom")]
        public string Prenom { get; set; }
 
        [XmlAttribute("age")]
        public int Age { get; set; }
 
        [XmlElement("adresse")]
        public Adresse Adresse { get; set; }
 
        public Personne(string nom, string prenom, int age, Adresse adresse)
        {
            Nom = nom;
            Prenom = prenom;
            Age = age;
            Adresse = adresse;
        }
 
        public Personne() { }
 
        public override string ToString()
        {
            return string.Format("Nom : {0}  Prénom : {1}  Age : {2}\n{3}",Nom,Prenom,Age,Adresse.ToString());
        }
    }
}
classe Adresse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
 
namespace Serialisation.Data
{
    public class Adresse
    {
        [XmlElement("numeroMaison")]
        public int NumeroMaison { get; set; }
 
        [XmlElement("rue")]
        public string Rue { get; set; }
 
        [XmlElement("codePostal")]
        public int CodePostal { get; set; }
 
        [XmlElement("ville")]
        public string Ville { get; set; }
 
        public Adresse(int numeroMaison, string rue, int codePostal, string ville)
        {
            NumeroMaison = numeroMaison;
            Rue = rue;
            CodePostal = codePostal;
            Ville = ville;
        }
        public Adresse() { }
 
        public override string ToString()
        {
            return string.Format("Adresse : {0}, {1}\nVille : {2} {3}",Rue,NumeroMaison,CodePostal,Ville);
        }
    }
}
classe ListePersonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
 
namespace Serialisation.Data
{
    public class ListePersonne
    {
        [XmlArray("listePersonne")]
        public List<Personne> ListPersonne { get; set; }
 
        public ListePersonne()
        {
            ListPersonne = new List<Personne>();
        }
    }
}
classe SerialiserPersonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.Configuration;
using System.IO;
 
namespace Serialisation.Data
{
    public class SerialiserPersonneXml
    {
        public static void Serialiser(List<Personne> liste)
        {
            string fichierXml = ConfigurationManager.AppSettings["fichierXml"];
 
            XmlSerializer ecrire = new XmlSerializer(typeof(ListePersonne));
 
            using(StreamWriter flux = new StreamWriter(fichierXml))
            {
                ecrire.Serialize(flux, liste);
            }
        }
    }
}
EDIT : j'ai l'impression que le problème vient du lien d'agrégation entre Personne et Adresse mais je ne voit pas comment résoudre cela ?