progs.biz  
Начало>C#>Основы>Урок 63
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Разработка WEB-сервисов XML и серверных компонентов на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
 Разработка WEB-сервисов XML и серверных компонентов на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
Заказать на Озоне



Яндекс-цитирования

Основы C#
Урок 63. Сериализация класса

Для того, чтобы класс стал сериализуемым, достаточно объявить его с атрибутом Serializable. Например, вот так:

namespace Serial
{
    [Serializable()]
    class Worker
    {
        public int age;
        public int yoe;
    }
}

После этого экземпляр класса можно, например, целиком сохранять в файл и читать из файла (именно экземпляр класса целиком, а не поля класса по отдельности). Вот пример такого использования сериализуемого класса:

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace Serial
{
    class Program
    {
        static void Main(string[] args)
        {
            // Задаем экземпляр класса.
            Worker w = new Worker();
            w.age = 22;
            w.yoe = 2;

            // Сериализуем класс.
            FileStream fs = new FileStream("1.txt", FileMode.Create, FileAccess.Write);
            IFormatter bf = new BinaryFormatter();
            bf.Serialize(fs, w);
            fs.Close();

            // Десериализуем класс.
            fs = new FileStream("1.txt", FileMode.Open, FileAccess.Read);
            Worker w1 = (Worker)bf.Deserialize(fs);
            Console.WriteLine("age: " + w1.age + ", yoe: " + w1.yoe);
            fs.Close();
        }
    }
}

Вполне естественно, что приведенный пример выведет на экран "age: 22, yoe: 2".

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


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