Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки Урок 55. Сериализация класса


Уроки по Visual Basic.NET. Рассылки сайта progs.biz
Выпуск № 86
 
Начало > VB.NET > Основы > Урок 86

Сахил Малик. Microsoft ADO.NET 2.0 для профессионалов
Сахил Малик. Microsoft ADO.NET 2.0 для профессионалов
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 86.

Основы 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) в нашем случае. И потом прочитать из файла.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

В избранное