Bonjour,
Je débute au niveau de la sérialisation, dans mon projet je dispose de 3 classes dont une avec de l’héritage.
Dans ma 3e classe je souhaite créer une arrayList qui me permettra d'enregistrer mes différents objets. Je souhaite donc sérialiser mes différents objets dans un même fichier XML.
La structure de la 1er Classe simple sans heritage.
La 2e classe elle dispose d'héritage
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 [Serializable] [System.Xml.Serialization.XmlRoot()] public class ClassZoo { public int CA; public string nom; public int salarie; public int capaciteMax; public int nbVisiteurs; public int prixEntre; public int prixMin; public int prixMoyen; public int prixMax; public int niveau; //Random randNombreVisiteurs = new Random(); public ClassZoo() { this.CA = 1000; this.salarie = 100; this.prixEntre = 12; this.prixMoyen = 12; this.capaciteMax = 100; this.niveau = 1; }
Ma 3e classe avec la fonction pour serializer
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
40
41
42
43
44
45
46
47
48
49
50 [Serializable] [System.Xml.Serialization.XmlRoot()] public class ClassAnimaux { public int nombre; public int qteNourriture; public string typeNourriture; public ClassAnimaux() { this.nombre = 0; this.qteNourriture = 0; this.typeNourriture = ""; } } [XmlInclude(typeof(ClassAnimaux))] public class Tigres : ClassAnimaux { public Tigres(int nombre): base() { this.nombre = nombre; this.qteNourriture = nombre * 2; this.typeNourriture = "Viande"; } } [XmlInclude(typeof(ClassAnimaux))] public class Singes : ClassAnimaux { public Singes (int nombre): base() { this.nombre = nombre; this.qteNourriture = nombre * 5; this.typeNourriture = "Graines"; } } [XmlInclude(typeof(ClassAnimaux))] public class Lions : ClassAnimaux { public Lions (int nombre): base() { this.nombre = nombre; this.qteNourriture = nombre * 2; this.typeNourriture = "Viande"; } } }
Lorsque l'on rentre dans ma fonction Sérialise, j'ai une erreur sur la ligne xs.Serialize(wr, Liste);
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 [Serializable] [System.Xml.Serialization.XmlRoot()] public class ClassSerialize { public ArrayList Liste = new ArrayList(); //public List<Liste> contactBook = new List<Person>(); public ClassSerialize() // constructeur par defaut { } public void Serialize (object Tigres,object Singes, object Zoo, object Lions ) { Liste.Add(Tigres); Liste.Add(Singes); Liste.Add(Zoo); Liste.Add(Lions); XmlSerializer xs = new XmlSerializer(typeof(ClassSerialize)); using (StreamWriter wr = new StreamWriter("toto.xml")) { xs.Serialize(wr, Liste); } }Erreur lors de la génération du document XML.
Partager