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:
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 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()
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.
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()
Merci de votre aide.
[/code]
Partager