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!!!!!!!!!
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!!!!!!!!!
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.
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 ^^
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 ;-)