Bonjour,
j'essaye d'exporter mes collection dans un fichier xml.
Mais celui ci m'affiche l'erreur:
Pourtant ma classe OeuvreXML est en public ainsi que toute les données de sa partie statique et ses methodes.Gestion_expositions.OeuvreXML est inaccessible en raison de son niveau de protection. Seuls les type publics peuvent être traités.
Voici comment je fais la sérialisation:
et voici ma classe OeuvreXML:
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 SaveFileDialog sFD = new SaveFileDialog(); sFD.Filter = "Fichier texte (*.xml)|*.xml"; sFD.RestoreDirectory = true ; if (sFD.ShowDialog() == DialogResult.OK) { try { int i; OeuvreEnVente uneoeuvre; Collection unecollectionxml = new Collection(); FileStream stream = new FileStream(sFD.FileName, FileMode.Create); XmlSerializer serializer = new XmlSerializer(typeof(Collection), new Type[] { typeof(OeuvreXML) }); for (i = 0; i < mesCatalogue.cardinal(); i++) { OeuvreXML uneoeuvrexml = new OeuvreXML(); uneoeuvre = ((OeuvreEnVente)mesCatalogue.donnerObjet(i)); uneoeuvrexml.Initialise(uneoeuvre.getEtat(), uneoeuvre.getPrix()); unecollectionxml.ajouterObjet(uneoeuvrexml); } serializer.Serialize(stream, unecollectionxml); stream.Close(); } catch (Exception argh) { MessageBox.Show(argh.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Pour info, je travaille avec Visual studio 2005
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 using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; /// classe utilisé pour la sérialisation en xml namespace Gestion_expositions { [Serializable] //Sérialisation de lobjet mescatalogues [System.Xml.Serialization.XmlRootAttribute("mescatalogues", Namespace = "", IsNullable = false)] class OeuvreXML { public OeuvreXML() { //Constructeur } [System.Xml.Serialization.XmlElementAttribute(DataType = "string")] public string etat; [System.Xml.Serialization.XmlElementAttribute(DataType = "double")] public double PrixOeuvre; //[System.Xml.Serialization.XmlElementAttribute(DataType = "unsignedInt")] //public uint compteID; //[System.Xml.Serialization.XmlElementAttribute(DataType = "decimal")] //public decimal decouvert; //[System.Xml.Serialization.XmlElementAttribute(DataType = "date")] //public DateTime datecreation; public void Initialise(string et, double prix) { etat = et; PrixOeuvre = prix; //compteID = c; //decouvert = d; //datecreation = dc; } } }
Merci d'avance
Partager