Восстановление объекта из двоичного файла - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть форма с несколькими текстовыми полями, где пользователь может вводить атрибуты человека. Я должен сохранить всех людей в списке, а затем поместить все объекты списка в двоичный файл, чтобы потом можно было восстановить всех людей.

У меня есть функция, которая сериализует объект:

    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

Я не до конца понимаю, как работает десериализация. Мне нужно восстановить объекты и заполнить текстовые поля в форме информацией о человеке, а также иметь возможность перемещаться между разными людьми в файле. Есть ли в двоичном файле отметка, указывающая, когда заканчивается объект? Как это работает?

...