Основы VB.NET Урок 55. Сериализация класса
Сериализация - это, попросту говоря, запись некой информации в последовательной форме (т. е. байт за байтом). И, соотвественно, десериализация - это обратное преобразование. Сериализация и десериализация используются, например, для записи экземпляра некоторого класса в файл.
Рассмотрим это на примере.
Вот первый класс:
<Serializable()> _
Public Class MyClass0
Public a As Integer
Public b As Boolean
Public c As MyClass1
End Class
Как вы видите, сделать класс сериализуемым очень просто - мы должны добавить к нему атрибут Serializable (атрибуты в VB мы пишем в квадратных скобках). И все.
Обратите внимание, что у нас в классе MyClass0 есть переменная с типом MyClass1. Это тоже наш класс. Его код, например, может быть таким:
<Serializable()> _
Public Class MyClass1
Public a As Integer()
End Class
Обратите внимание, что этот класс обязан быть тоже сериализуемым (так как он используется в сериализуемом классе MyClass0).
А вот так можно это все использовать:
Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Module Module1
Sub Main()
Dim z0 As New MyClass0
z0.a = 22
z0.b = False
Dim w As New MyClass1
w.a = New Integer() {2, -3}
z0.c = w
' Сериализация.
Dim fs As New FileStream("1.txt", FileMode.Create)
Dim bf As New BinaryFormatter
bf.Serialize(fs, z0)
fs.Close()
' Десериализация.
Dim z1 As New MyClass0
fs = New FileStream("1.txt", FileMode.Open)
z1 = Convert.ChangeType(bf.Deserialize(fs), z0.GetType())
fs.Close()
End Sub
End Module
Так как наш класс MyClass0 сериализуемый, то мы можем записать его в последовательной форме в, например, файл (1.txt) в нашем случае. И потом прочитать из файла.
|