Bonjour,

Je veux lire des objets de type cMotLst(liste d'objet du type cMots(mots en différentes langues))enregistrées par sérialisation dans des fichiers .Bin.
Voici la classe de base cMotsLst ( Liste d'objets du type cMots)

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

<Serializable()> Public Class cMotsLst
    Inherits ObservableCollection(Of cMotsLst)
    Public MotLst As New List(Of cMots)
    Public Sub New(ByVal Name As String) 'Nom de classe
        _cMotsLstName = Name
    End Sub
    Public Property cMotsLstName() As String
End Class
'Voici la classe cMots contenant des mots en différentes langues
'**************************************************************
'*  cMots   :mots  en différentes langues
'*  cMotLg0 ... cMotLg5=  langues fr,Th,Sc,En,Dt,SP
'**************************************************************
<Serializable()> Public Class cMots
    Public Sub New()
    End Sub
    Public Property MotFr() As String
    Public Property MotTh() As String
    Public Property MotThEasy() As String
    Public Property MotThRoman() As String
    Public Property MotSc() As String
    Public Property MotEn() As String
    Public Property MotDt() As String
   etc....
JE veux relire trois fichiers contenant les données sérialisées
Je crée trois objets de type cMotsLst
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   MOTAbreviation = New cMotsLst("MOTAbreviation") '
        MOTAdj = New cMotsLst("MOTAdj")
        MOTAdvInterConj = New cMotsLst("MOTAdvInterConj")
J'ai crée une Sub LitClasseMOT qui prend en paramétre m par référence un objet cMotLst
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
 Public myFileStream As Stream
    Public Sub LitClasseMOT(ByRef m As cMotsLst)
        Dim dirInfo As New System.IO.DirectoryInfo("../../Lecon/")
        PathLecon = dirInfo.FullName
        Dim s As String
        s = PathLecon & m.cMotsLstName & ".bin"
        Try
            If File.Exists(s) Then
                Dim myFileStream = File.OpenRead(s)
                Dim deserializer As New BinaryFormatter()
                deserializer.AssemblyFormat = Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
                m = CType(deserializer.Deserialize(myFileStream), cMotsLst)
                myFileStream.Close()
            End If
        Catch ex As Exception
            MessageBox.Show("Fichier " & s & " introuvable")
        End Try
    End Sub
Lorsque je veux lire un fichier binaire et le mettre dans l'objet MOTAbreviation
je fais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
LitClasseMOT(MOTAbreviation)
LE fonction lit les données dans m.lstmot (vu par Debug) mais MOTAbreviation.lstMot n'est pas modifiée
Pourtant la référence de l'objet est la même.

Merci