plop,
j'ai un ptit souci de désérialisation de fichier xml.
Voila le xml

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
 
<?xml version="1.0" encoding="UTF-8"?> 
<interface   xmlns="http://tempuri.org/interface.xsd">
    <session>
        <champ_session num="1">
            <nom_champ_session>LIB_SESSION</nom_champ_session>
            <obligatoire_champ_session>true</obligatoire_champ_session>
                <controle num="1">
                    <type_controle>textbox</type_controle>
                    <longueur_controle>150</longueur_controle>
                    <donnees_controle>texte</donnees_controle>
                </controle>
        </champ_session>
    </session>
</interface>
et la classe de sérialisation
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 
 
    <System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
     System.SerializableAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://tempuri.org/interface.xsd"), _
     XmlRootAttribute([Namespace]:="http://tempuri.org/interface.xsd", IsNullable:=False, ElementName:="interface")> _
    Public Class Interface_serial
 
        Private sessionField() As champ_session
        <XmlArrayItemAttribute("champ_session", GetType(champ_session))> _
        Public Property session() As champ_session()
            Get
                Return sessionField
            End Get
            Set(ByVal value As champ_session())
                sessionField = value
            End Set
        End Property
End Class
    <System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
     System.SerializableAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://tempuri.org/interface.xsd"), _
     XmlRootAttribute([Namespace]:="http://tempuri.org/interface.xsd", IsNullable:=False)> _
    Public Class controle
 
        Private numField As Integer
        Private typeField As String
        Private longueurField As String
        Private donneesField As String
 
        <XmlAttributeAttribute()> _
        Public Property num() As Integer
            Get
                Return numField
            End Get
            Set(ByVal value As Integer)
                numField = value
            End Set
        End Property
 
        <XmlElementAttribute("type_controle")> _
        Public Property type_de_controle() As String
            Get
                Return typeField
            End Get
            Set(ByVal value As String)
                typeField = value
            End Set
        End Property
 
        <XmlElementAttribute("longueur_controle")> _
        Public Property longueur() As String
            Get
                Return longueurField
            End Get
            Set(ByVal value As String)
                longueurField = value
            End Set
        End Property
 
        <XmlElementAttribute("donnees_controle")> _
        Public Property type_donnees() As String
            Get
                Return donneesField
            End Get
            Set(ByVal value As String)
                donneesField = value
            End Set
        End Property
    End Class
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
     System.SerializableAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://tempuri.org/interface.xsd"), _
     XmlRootAttribute([Namespace]:="http://tempuri.org/interface.xsd", IsNullable:=False)> _
    Public Class champ_session
 
        Private strLibelle As String
        Private strObligatoire As String
        Private intNum As Integer
        Private controlsField() As controle
        <XmlElementAttribute("nom_champ_session")> _
        Public Property Libelle() As String
            Get
                Return strLibelle
            End Get
            Set(ByVal value As String)
                strLibelle = value
            End Set
        End Property
        <XmlElementAttribute("obligatoire_champ_session")> _
        Public Property Obligatoire() As String
            Get
                Return strObligatoire
            End Get
            Set(ByVal value As String)
                strObligatoire = value
            End Set
        End Property
        <XmlAttributeAttribute("num")> _
        Public Property Num() As Integer
            Get
                Return intNum
            End Get
            Set(ByVal value As Integer)
                intNum = value
            End Set
        End Property
        <XmlArrayItemAttribute("controleZ", GetType(controle))> _
        Public Property listcontrols() As controle()
            Get
                Return controlsField
            End Get
            Set(ByVal value As controle())
                controlsField = value
            End Set
        End Property
 
    End Class
J'ai très largement édulcoré le xml et la classe pour ne garder que ce qui pose soucis.

l'objet Interface_Serial est bien chargé sans les infos
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<controle num="1">
                    <type_controle>textbox</type_controle>
                    <longueur_controle>150</longueur_controle>
                    <donnees_controle>texte</donnees_controle>
                </controle>
Pour moi le problème viendrait du ItemArray qui contient un itemArray.
Plus trop de piste la :/
une idée ?
merci