Sérialisation XML [Résolu]

Signaler
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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]
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
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.