cs_vagg
Messages postés102Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention24 janvier 2013
-
9 juil. 2009 à 17:59
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
10 juil. 2009 à 21:21
Bonjour à tous,
Je reprend un programme datant de 5mois pour le modifier un peu mais j'ai un problème que j'ai déja eu mais pas moyen de me souvenir de la solution que j'avais trouvée.
J'ai une classe qui me permet de sérialiser un objet en XML :
public class GenericXmlSerializer
{
public static void Serialize(object obj, string Path)
{
XmlSerializer oXmlSerializer = new XmlSerializer(obj.GetType());
StreamWriter oStreamWriter = new StreamWriter(Path);
oXmlSerializer.Serialize(oStreamWriter, obj);
oStreamWriter.Close();
}
public static object Deserialize(string Path, Type t)
{
XmlSerializer oXmlSerializer = new XmlSerializer(t);
StreamReader oStreamReader = new System.IO.StreamReader(Path);
object obj = oXmlSerializer.Deserialize(oStreamReader);
oStreamReader.Close();
return obj;
}
}
Je l'appel avec :
GenericXmlSerializer.Serialize(listinv, path);
listinv étant une collection d'objets et path le chemin du fichier.
Lors de l'éxécution il bloque (pour la sérialisation) sur oXmlSerializer.Serialize(oStreamWriter, obj);
L'erreur est la suivante :
InvalidOperationException
There was an error generating the XML document
Si quelqu'un peut m'aider à comprendre je vous en remerci d'avance...
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 10 juil. 2009 à 11:59
1 - regarde la inner exception de ton exception pour plus d'infos.
2 - est ce que ton objet est bien serializable? (il doit avoir l'attribute [Serializable] ou implémenter l'interface IXMLSerializable). si cest n'est pas le cas, cest ton erreur
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 10 juil. 2009 à 12:26
Euh, qu'entend tu pas "oui mon objet est bien serializable"? using system.xml.serialization ne te permet que d'accéder aux objets du namespace, ni plus ni moins.
Pour IXmlSerializable, tu peux regarder sur la msdn et sur le site.................................................................................................................(y'a assez de points de suspensions pour montrer mon désespoir devant ton manque de recherches?).
Et pour finir, as tu regardé l'innerexception de ton invalidoperationexception?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201362 10 juil. 2009 à 21:21
Quelques corrections:
- L'attribut Serializable n'est pas obligatoire pour la Sérialization XML.
- La classe qui est sérialisée doit suivre plusieurs points qui sont indiqués dans la documentation (par exemple, doit avoir un constructeur vide)
- IXmlSerializable permet d'implémenter un Serializer personnalisé dans le cas où l'objet n'est pas Serializable (par exemple, un Graphics).