[DOTNET][C#]Problème de sérialization

cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011 - 2 juin 2005 à 15:56
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011 - 6 juin 2005 à 11:25
Bonjour,

J'utilise la sérialisation binaire pour la persistance des données, mais voilà le problème :
Mes données sont sérializé la première fois sur le disque avec les versions de mes assembly a 1.0.0.0. Si la version de mes assemblys ne change pas ca marche très bien mais dès lors que j'ai un assembly qui a changer de version, je ne peut plus déserialize mon fichier de données.

Si quelqu'un avait une idée pour sérializé des objets sans tenir compte de la version de l'assembly auquels ils appartiennent ?

NB : Cela fait la meme chose en sérialization binaire et soap, et mes objet implémente l'interface ISerializable

Merci

CedKat

5 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
3 juin 2005 à 08:00
Salut,
Je dois avouer que je ne vois pas le rapport entre la Sérialization et la version d'une Assembly. En tout cas, j'ai jamais eu ce problème....
Tu peux un peu plus préciser ce que tu fais, éventuellement donner un peu de code ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
3 juin 2005 à 15:24
En effet, ce problème existe, et il y a 2 solutions :



1- Créer une DLL qui contient les classes que tu veux sérialiser. De
cette mannière, tu peux modifier ton programme appelant comme tu veux,
et tu peux même faire du partage de données. C'est-à-dire que si tu
veux faire 2 logiciels qui puissent lire ton fichier, et bien tu
référence ta dll dans les 2 projets, et voila !



2- Tu peux modifier une petite option de ton projet. Si tu vas dans les
propriétés de lui-ci tu as un onglet "Build". Tout en bas de la fenêtre
des propriétés, tu as une liste marquée Generate Serialization
Assembly. Si tu mets cette option à false, tu n'as plus de problème...
logiquement...



J'ai eu ce problème et la seconde solution a déjà marché pour mon cas... j'espère que ca peut t'aider...
0
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011
6 juin 2005 à 08:22
bonjour
J'ai déjà appliquer ta premiere solution mais la dll qui contient mes objets est aussi suceptible d'être modifié au fil tu temps donc le prblème persiste.
En ce qui conserne la deuxième, je ne trouve pas l'onglet "build" ou léquivalent car j'ai une version francaise. si tu avais plus de présision car je voudrais l'appliquer à la dll d'objet.
Merci.

CedKat
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
6 juin 2005 à 10:34
Dans l'explorateur de solutions, tu as ton (ou tes) projet(s). 9a doit te faire un arbre avec "Solutions" puis "Projet1", ...

Dans ton projet, tu dois avoir un élément "properties" ou "propriétés".
Quand tu double-cliques dessus apparaissent les propriétés du projet.
Normallement, tu dois avoir une série d'onglets qui apparaissent
("Application", "Build", "Build events", ... dsl j'ai une version
anglaise). Ches moi, c'est dans l'onglet "Build" que ça se trouve. Tu
cliques sur cet onglet "Build" et tu regardes la toute dernière option.



Je t'ai décrit la manip pour le dernier Visual C#, mais je ne sais pas
si l'option présentée ici est disponible pour ta version de Visual
Studio (plus ancienne ?).



Yo
0

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

Posez votre question
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011
6 juin 2005 à 11:25
Merci de ton aide, mais j'ai visual studio 2003 et dans la fenetre de propriété de l'application ou des assemblys, il n'y a pas (ou je ne trouve pas!) d'onglet "build" ou autre.

CedKat
0
Rejoignez-nous