Problème sérialisation XML [C#]
Bonjour,
j'essaye d'exporter mes collection dans un fichier xml.
Mais celui ci m'affiche l'erreur:
Citation:
Gestion_expositions.OeuvreXML est inaccessible en raison de son niveau de protection. Seuls les type publics peuvent être traités.
Pourtant ma classe OeuvreXML est en public ainsi que toute les données de sa partie statique et ses methodes.
Voici comment je fais la sérialisation:
Code:
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);
}
} |
et voici ma classe OeuvreXML:
Code:
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;
}
}
} |
Pour info, je travaille avec Visual studio 2005
Merci d'avance