У меня есть форма с несколькими текстовыми полями, где пользователь может вводить атрибуты человека. Я должен сохранить всех людей в списке, а затем поместить все объекты списка в двоичный файл, чтобы потом можно было восстановить всех людей.
У меня есть функция, которая сериализует объект:
Public Sub serialize()
Dim obj As New Person
For Each person As Object In personList
obj.addPerson(person)
If Not obj Is Nothing Then
Dim fs As FileStream = File.Create("C:\temp\person.bin")
Dim serializer As New BinaryFormatter()
serializer.Serialize(fs, obj)
fs.Close()
End If
Next
End Sub
Добавление человека в список:
Public Sub afegirPerson(ByVal person As Object)
Me.personList.Add(person )
End Sub
И десериализация:
Public Sub deserialize()
Dim obj As Person = Nothing
If File.Exists("C:\temp\person.bin") Then
Dim fs As FileStream = File.OpenRead("C:\temp\person.bin")
Dim deserializer As New BinaryFormatter
obj = CType(deserializer.Deserialize(fs), Person)
fs.Close()
End If
End Sub
Я не до конца понимаю, как работает десериализация. Мне нужно восстановить объекты и заполнить текстовые поля в форме информацией о человеке, а также иметь возможность перемещаться между разными людьми в файле. Есть ли в двоичном файле отметка, указывающая, когда заканчивается объект? Как это работает?