Problème sérialisation XML : champs doublés ( variables + accesseurs ?? )

Résolu
herakles66 Messages postés 8 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 11 mai 2009 - 27 avril 2009 à 14:19
herakles66 Messages postés 8 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 11 mai 2009 - 27 avril 2009 à 21:42
<style><![CDATA[ODY{font:x-small 'Verdana';margin-right:1.5em}
.c{cursor:hand}
.b{color:red;font-family:'Courier New';font-weight:bold;text-decoration:none}
.e{margin-left:1em;text-indent:-1em;margin-right:1em}
.k{margin-left:1em;text-indent:-1em;margin-right:1em}
.t{color:#990000}
.xt{color:#990099}
.ns{color:red}
.dt{color:green}
.m{color:blue}
.tx{font-weight:bold}
.db{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;border-left:1px solid #CCCCCC;font:small Courier}
.di{font:small Courier}
.d{color:blue}
.pi{color:blue}
.cb{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;font:small Courier;color:#888888}
.ci{font:small Courier;color:#888888}
PRE{margin:0px;display:inline}]]></style>


Bonjour à tous !

Alors j'ai un petit soucis, et j'aurais aimé avoir vos avis eclairés à ce sujet !
Je réalise la sérialisation XML d'une classe ListKIT1300 : List<KIT1300> Elle contient des objets KIT1300 qui peuvent être VAI ou VAE par héritage. Pour implémenter ces différents objets, j'ai ajouté les lignes [XmlInclude(typeof(VAI)), XmlInclude(typeof(VAE))] dans la clase KIT1300.

Donc ça marche, youpi, j'obtiens bien un fichier xml qui contient indéferemment des VAI ou des VAE.

Le problème, c'est que mes variables apparaissent doublées dans le fichier XML !! Par exemple je vais avoir les balises

<
type
>
VAI
</
type
> et plus bas
<
Type
>
VAI
</
Type
> Donc une en minuscule, l'autre en majuscule.

Est ce que ça serialise les variables + les accesseurs ? est ce normal ? Peut -on y remedier ?

Merci d'avance !!




<?
xml version= "1.0" encoding="utf-8"

?>






[# -]
<
ArrayOfKIT1300
xmlns:xsi
="
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:xsd
="
http://www.w3.org/2001/XMLSchema
"
>








[# -]
<
KIT1300
xsi:type
="
VAI
"
>








 
<
caractereCode
>
C
</
caractereCode
>








 
<
type
>
VAI
</
type
>








 
<
versionType
>
3
</
versionType
>








 
<
repere
>
GSS008DT
</
repere
>








 
<
validite
>
1234
</
validite
>








 
<
libelle
>
#GRADIENT HAUT DE PLAQUE 014ZF#
</
libelle
>








 
<
CaractereCode
>
C
</
CaractereCode
>








 
<
Type
>
VAI
</
Type
>








 
<
VersionType
>
3
</
VersionType
>








 
<
Repere
>
GSS008DT
</
Repere
>








 
<
Validite
>
1234
</
Validite
>








 
<
Libelle
>
#GRADIENT HAUT DE PLAQUE 014ZF#
</
Libelle
>








 
<
scrutation
>
3
</
scrutation
>








 
<
natureSeuilHaut
>
#H#
</
natureSeuilHaut
>








 
<
natureSeuilBas
>
-
</
natureSeuilBas
>








 


<
Scrutation
>
3
</
Scrutation
>












 
<
NatureSeuilHaut
>
#H#
</
NatureSeuilHaut
>








 
<
NatureSeuilBas
>
-
</
NatureSeuilBas
>





 </KIT1300>







 
</
ArrayOfKIT1300
>

4 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
27 avril 2009 à 21:33
Bonsoir,
Par défaut, les membres public sont sérialisés et c'est tout (avec XML).
Si il apparaît deux fois, c'est probablement que tu as une property + variable de classe publiques.

Regardes du côté de XmlIgnore()

<hr />
-Blog-
-Site Perso-
3
herakles66 Messages postés 8 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 11 mai 2009
27 avril 2009 à 16:31
Au final j'obtiens un fichier XML tellement gros que je n'arrive pas à l'ouvrir, vu que tous les champs sont doublés :x

Quelqu'un aurait une idée du pourquoi ?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 avril 2009 à 21:34
0
herakles66 Messages postés 8 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 11 mai 2009
27 avril 2009 à 21:42
Oui ok merci beaucoup !!
Avec des "protected" et des "private" pour définir mes variables de classe ça marche mieux ;)
0
Rejoignez-nous