Раньше мы сохраняли информацию в
текстовый файл.
Бывает, сложно сохранить
объект класса в
текстовый файл.
Для решения этой задачи используется
сериализация.
Сериализация
Сериализация это процесс преобразования
объекта в
поток байтов.
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
[Serializable] // установили атрибут Serializable
class Book
{
public string Name { get; set; }
public string Author { get; set; }
public int Price { get; set; }
}
class Program
{
static void Main(string[] args)
{
}
}
}
На заметку 1
При отстутствии атрибута
Serializable объект
Book не сможет быть
сериализован.
Т.е. при
сериализации будет выброшено исключение
SerializationException.
На заметку 2
Чтобы
поле класса
не сериализовалось мы его помечаем атрибутом
NonSerialized
C#
[Serializable] // установили атрибут Serializable
class Book
{
public string Name { get; set; }
[NonSerialized]
public string Author; // нет сериализации для этого поля
public int Price { get; set; }
}
На заметку 3
При
наследовании атрибут
Serializable автоматически
не наследуется.
Если мы хотим, чтобы
производный класс мог быть
сериализован, то мы применяем к нему атрибут
Serializable
C#
[Serializable] // установили атрибут Serializable
class Book
{
public string Name { get; set; }
public string Author { get; set; }
public int Price { get; set; }
}
[Serializable] // установили атрибут Serializable
class BookManager : Book
{
}