Bonjour,

Soit le XML simplifié suivant

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
  <WhereFilter>
 
    <FilterGroup ID="Racine">
    </FilterGroup>
 
    <Filter ID="MF1FILTRE1">
    </Filter>
 
    <FilterGroup ID="MF1GROUPE1">
    </FilterGroup>
 
    <Filter ID="MF1FILTRE2">
    </Filter>
 
    <Filter ID="MF1FILTRE3">
    </Filter>
 
  </WhereFilter>
et la class c# pour le désérialiser

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    [XmlRoot(ElementName = "WhereFilter", Namespace = "")]
    public class WhereFilter
    {
        [XmlElement(ElementName = "FilterGroup", Namespace = "")]
        public List<FilterGroup> FilterGroup;  
 
        [XmlElement(ElementName = "Filter", Namespace = "")]
        public List<Filter> Filter;
    }
il y a 2 listes d'objet. Dans le principe ça foncionnne sauf que lors de l'écriture il me met en 1er les FilterGroup puis les Filter.
Comme ça
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
  <WhereFilter>
 
    <FilterGroup ID="Racine">
    </FilterGroup>
 
    <FilterGroup ID="MF1GROUPE1">
    </FilterGroup>
 
    <Filter ID="MF1FILTRE1">
    </Filter>
 
    <Filter ID="MF1FILTRE2">
    </Filter>
 
    <Filter ID="MF1FILTRE3">
    </Filter>
 
  </WhereFilter>
Ce qui est normal.

Je voudrais conserver l'ordre initial.

Avez une idée de comment je pourrait déclarer ma class pour faire ça.

Merci