Sérialiser une classe dérivée avec une propriété redéfinie. [Résolu]

Signaler
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour,

J'ai une classe B qui dérive d'une classe A.
J'ai ajouté à une propriété de la classe B le mot clé "new" pour la redéfinir (nom de la prop. identique à la classe A mais pas le type).

Et je n'arrive pas à sérialiser la classe B.

Quelqu'un a une idée ?

Merci d'avance

(frk 3.5, vs2008)

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
La classe B est dérivé et non abstraite, ne fait pas attention au titre dsl
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
Bonjour,

J'ai peur de pas bien comprendre ta question. Peux-tu envoyer le code de ta classe ? (ou un exemple qui ne fonctionne pas).


Car, j'ai tendance à croire que ton problème est similaire à un autre que j'avais rencontré et résolu en ajoutant:
[XmlInclude(typeof("classe B"))]
au dessus de la définition de la classe qui contenait une collection de "classe A".

Ce qui donne:
[XmlInclude(typeof(classe B))]
public class ClassACollection : ICollection<"classe A">
{
...
}


Mais, je ne suis pas sûr que ce soit cela que tu recherches.


Billou_13
Messages postés
165
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
1 février 2013
1
Classe A :







[

Serializable
()]


public



class



ProcessEdifact



{





#region




Propriétés








private



ProcessEdifact
.

EdifactStructure
esDataStructure;[


XmlElement
(IsNullable =

false
)]


public



ProcessEdifact
.

EdifactStructure
DataStructure{


get
{

return
esDataStructure; }


set
{ esDataStructure =

value
; }}



#endregion









Classe B :

[Serializable()]

public



class



ProcessEdifice
:

ProcessEdifact

{





#region



Propri‚t‚s


private



ProcessEdifice
.

EdificeStructures
esDataStructure;








public



new



ProcessEdifice
.

EdificeStructures
DataStructure{


get
{

return
esDataStructure; }


set
{ esDataStructure =

value
; }}