Supposons que j'ai une classe Class1 avec une seule propriété (Prop1), que je déclare comme serializable et je l'enregistre dans un fichier en faisant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Dim myObj as New Class1
Dim FS As New FileStream("c:\test.txt", FileMode.Create)
Dim BinFormatter As New Binary.BinaryFormatter
BinFormatter.Serialize(FS, myObj)
FS.Close()
Jusque là ça va, mais supposons que pour une raison X, je modifie ma classe et j'ajoute une nouvelle propriété (Prop2), alors, ce que j'utilisais pour deserializer c'était:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Dim fs As FileStream
Dim BinFormatter As New Binary.BinaryFormatter
Dim obj As Object
dim myObj as Class1
fs = New System.IO.FileStream("c:\test.txt", IO.FileMode.OpenOrCreate)
obj = BinFormatter.Deserialize(fs)
myObj = CType(obj, Class1)
fs.Close()
Là j'obtiens un erreur parce l'objet sérializé avait qu'une seule propriété, mais j'ai modifié la classe et là le nombre de propriétés ne correspond pas. Pourtant je voudrais qu'il l'ouvre quand même. Je voudrais juste qu'il ignore les propriétés qui n'ont pas été sérializées.

Merci de votre aide.
[/code]