|
Сериализация
Для того, чтобы класс стал сериализуемым, достаточно объявить его с атрибутом 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".
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (2,33 - 3 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
Комментирует Walker 13.09.2011 12:01:47 Без объяснений, без ничего - просто кусок примера вырванный из середины книги.
|
|