вторник, 28 февраля 2012 г.

Сериализация в .NET - это просто

Магические слова “сериализация” и “десериализация” имеют отношение к магии сохранения состояния объекта. Наверняка сейчас мало у кого может возникнуть вопрос “зачем нужна сериализация”, но дабы соответствовать духу статьи, сказать об этом необходимо.
Сериализация имеет прямое отношение к сохранению состояния объекта в файле или памяти, а десериализация - к восстановлению состояния объекта соответственно. Примеров, когда это может пригодиться, неимоверное множество. Начиная от сохранения пользовательских настроек, сохранения промежуточного состояния объекта и заканчивая передачей объекта в специальном формате веб-сервису.
Для осуществления магии (де)сериализации .NET предлагает нам 3 родных варианта (не считая самостоятельной реализации механизма сериализации):
- Сериализация в двоичный формат (BinnaryFormatter)
- Сериализация в формат SOAP (SoapFormatter)
- Сериализация в формат xml (XmlSerializer)

У каждого из вариантов есть свои плюсы и минусы, о которых я постараюсь рассказать далее.