[C#] SOAP & Serialization

scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017 - 1 juil. 2005 à 17:07
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017 - 11 juil. 2005 à 01:04
mon code marche enfin à moitié.

lors de la désérialisation, je me prend souvent SerializationException
: Erreu d'analyse, aucun assembly associé à la clé xml
a1:http://schemas.microsoft.com/clr/nsassem/[...]cutlure%3Dneutral%2C%20PublicKeyToken[..]
ConfigNode



ConfigNode est une de mes classes

si je regénère le XML à partir de mon fichier INI initial, ca repart mais c gonflat cette erreur qui revient?.



une idée ?




----------------------------
C++ forever
C# amateur

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 juil. 2005 à 18:08
Salut,
Avec si peu d'informations, c'est dur de t'aider. T'as pas un morceau de code ? Des explications supplémentaires ?
Par exemple, poste voire la méthode qui s'occupe de déserializer...

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
3 juil. 2005 à 14:04
[Serializable()]

public class ConfigNode : System.Collections.DictionaryBase

{}



[Serializable()]

public class ConfigMainObject

{

public virtual void WriteXml (string destinationFilename)

{

SoapFormatter oSOAPSerial = new SoapFormatter();


System.IO.FileStream oFS = new
System.IO.FileStream(destinationFilename, FileMode.Create);

oSOAPSerial.Serialize(oFS, this.RootNode);

oFS.Close();

}



public virtual void ReadXml (string sourceFilename)

{

SoapFormatter oSOAPSerial = new SoapFormatter();


System.IO.FileStream oFSR = new
System.IO.FileStream(sourceFilename, FileMode.Open);


this.m_RootNode
= (ConfigNode)oSOAPSerial.Deserialize(oFSR);

oFSR.Close();

}



private ConfigNode m_RootNode;

}




Le reste des données internes n'a rien à voir avec la sérialization
----------------------------
C++ forever
C# amateur
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
4 juil. 2005 à 10:16
Dans le Write pour commencer, tu fais appel à this RootNode, j'imagine que c'est une Property qui fait appel à m_RootNode? Si oui, est-ce que c'est juste une Property qui get et set ou est-ce qu'il y a de la fonctionnalité supplémentaire ?


Sinon la méthode semble tout à fait correct, je ne pense pas que l'erreur vienne de là. Je pense plutôt que ça vient du fait que tu utilises un object qui dérive de DictionayBase. Je ne sais plus exactement comment fonctionne IDictionnary, mais j'imagine que tu dois le remplir de certains d'objects, deux questions :


Es-tu certain de ne pas avoir deux fois la même clef ?
Si non, quel genre d'object est-ce que tu rentres dans ton Dictionary ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
5 juil. 2005 à 10:55
pour la property, c'est un get tout simple oui.



le dictionnaire dans ConfigNode sert à créer un arbre n-aire. Chaque
ConfigNode peut avoir des fils de type ConfigNode et en plus une valeur.

Le but de ce fichier de config est de pouvoir indexer directement le type



this.RootNode["INIT"]["MAIN_WINDOW_X"].Value



ou



this.RootNode["INIT"]["BACK_COLOR"]["RED"].Value



Je vais vérifier effectivement si je n'ai pas deux clés avec la meme
valeur mais comme je suis parti d'un fichier INI pour créer le XML, la
nomenclature par imbrication doit etre bonne.

----------------------------
C++ forever
C# amateur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
11 juil. 2005 à 00:58
Je progress dans ma recherche du pb.

Visiblement il semblerait que ca déconne lors de la recompilation de ma lib contenant ces classes.

----------------------------
C++ forever
C# amateur
0
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
11 juil. 2005 à 01:04
Vala la différence, il stocke la version de l'assembly :









Et forcément à la relecture ca plante. Donc 2 solutions, soit on fige
la version de l'assembly, soit on l'ignore. soit qql'1 d'autre à une
idée ?

----------------------------
C++ forever
C# amateur
0
Rejoignez-nous