Sérialisation XML

Résolu
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 31 janv. 2008 à 14:34
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 31 janv. 2008 à 15:59
Bonjour,
J'ai un petit problème dans mon programme dans le cadre de la sérialisation XML :
J'ai une classe A contenant 2 propriétés de type B (prop1 et prop2).
Lorsque je sérialiase puis désérialise A et que prop1 et prop2 pointent vers deux instances de B différentes, pas de problèmes, je récupère bien ce que je veux.
Maintenant lorsque je sérialise puis désérialise A et que prop1 et prop2 pointent vers la même instance de B, je récupère deux instances de B identiques, mais deux instances distinctes, alors que j'aimerais récupérer une seule instance comme je l'avais au départ.
Comment puis-je contourner ce problème ? Suis-je obligé de changer de méthode de sérialisation ? Avec un sérialiseur binaire ça fonctionnerait ?

Merci !

<hr size="2" width="100%" />Julien.

2 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
31 janv. 2008 à 14:46
Malheureusement au moment de la désérialisation, rien ne te permet de savoir si lors de la sérialisation les 2 instances étaient les mêmes.
en gros :

tu sais que A = B
mais rien ne prouve que *A = *B

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
3
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
31 janv. 2008 à 15:59
Ouaip, j'aurais voulu qu'il soit possible de faire, un peu à la manière du XAML, un dictionnaire de resources style :

<Resources>
    
          <....>
    
</Resources>

   
   

Mais sinon entre temps je me suis débrouillé en ajoutant un propriété dont la valeur est unique pour chaque B, et juste après la désérialisation, si deux B on cette propriété qui a la même valeur, alors je ne garde qu'un des deux, dispose l'autre et remplace les références...

<hr size="2" width="100%" />Julien.
0
Rejoignez-nous