cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 2017
-
13 oct. 2008 à 18:24
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
14 oct. 2008 à 11:18
Bonjour,
y'a un petit truc qui me rend fou:
j'ai une classe Personne que j'arrive a serializer (mais que je ne souhaite pas serializer).
Pour l'instant, et pour simplifier, ma classe Liste_Personnes ne contient qu'un ArrayList de Personnes.
J'ai cherché sur le forum et trouvé (et testé) un post de Bidou pour serializer un ArrayList:
ArrayList myArrayL = new ArrayList ();
myArrayL.Add(3);
myArrayL.Add("salut");
XmlSerializer MySerializer = newXmlSerializer(typeof(ArrayList));
FileStream MyWriter=newFileStream(Application.StartupPath + @"\ArrayList.xml", FileMode.Create);
MySerializer.Serialize(MyWriter, myArrayL);
Ce code fonctionne. Par contre si j'ajoute une Personne à myArrayL, j'ai une erreur.
Ma question est la suivante: Pourquoi si j'arrive a serializer une Personne et que j'arrive a serializer un ArrayList, pourquoi est-ce que je n'arrive pas à serializer un ArrayList contenant une Personne?
Merci d'avance.
Nico
A+
*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
cs_thebigboss
Messages postés216Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention12 avril 20172 13 oct. 2008 à 19:18
Merci Bidou:
En fouillant un peu plus sur le forum j'ai trouvé la solution, il me fallait remplacer la ligne:
XmlSerializer MySerializer = new XmlSerializer (typeof(ArrayList));
par:
XmlSerializer MySerializer = newXmlSerializer(typeof(ArrayList), new Type[] { typeof(Personne) });
A+
*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 14 oct. 2008 à 09:49
Bonjour,
Pourrais-je ajouter une question à ceci ?
Le code:
"XmlSerializer serializer = new XmlSerializer(Type type, Type[] extraTypes);"
est-il équivalent à la mise en place de
"[XmlInclude(Type type)]" au dessus de la définition d'une classe qui contiendra une collection d'autres classes ?
Je parle ici d'équivalence pas de remplacement. Car je comprends bien que dans l'exemple de la question, on ne peut pas mettre en place cette solution.
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 14 oct. 2008 à 11:06
Ok, je vois !
Mais, je pensais que tu m'aurais sorti le code interprété pour me montrer que c'était la même chose LOL (je croyais que tu avais fait comme ça pour le savoir ^^)
Mais soit dit en passant, je suis d'accord avec ton test ^^
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 14 oct. 2008 à 11:14
Pas le temps (ni l'envie ^^) de me plonger dans du pseudo assembleur, surtout que je connais pas très bien l'IL....
Le teste de dessus ne prouve rien, ça conforte juste un souvenir ;-)