Bonjour à tous,

Je souhaite serialiser un élément pouvant être de plusieurs types


Voila l'exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<Description>
<LocalizedDescription Lang="en-GB-b">
jghgghf
</LocalizedDescription>
<LocalizedDescription Lang="fr-FR">
tetetetetetettete
</LocalizedDescription>
</Description>
Ou bien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<Description>
tetetetetetettete
</Description>
Est ce que c'est possible??

J'ai essyé de déclarer deux éléménts dans la classe de niveau supérieur portant le même nom mais cela me lève une exeption

voici le code associé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
[XmlElement("Description")]
        public string descriptSimple
        {
            get { return _descriptSimple; }
            set { _descriptSimple = value; }
        }
 
        [XmlArray("Description"), XmlArrayItem("LocalizedDescription")]
        public List<LocalizedDescriptionClass> multidescript
        {
            get { return _multidescript; }
            set { _multidescript = value; }
        }
J'ai aussi pensé à créer une classe contenant ces deux types d'éléments
Voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class DescriptionClass
    {
        private string valeur;
        private List<LocalizedDescriptionClass> test;
 
        [XmlText]
        public string Valeur
        {
            get { return valeur; }
            set { valeur = value; }
        }
 
        [XmlElement("")]
        public List<LocalizedDescriptionClass> Test
        {
            get { return test; }
            set { test = value; }
        }
    }
        }
Je voulais savoir si à la place de XmlElement(""), il existait un attribut permettant de récupérer simplement les élémént de moin tableau un peu comme XmlText fait avec une chaine de caractère.

Avez vous une idée de la manière dont je peu réaliser cette opération?

Merci d'avance pour vos réponses