2. В цьому модулі:
Поняття атрибутів
Що таке сериалізація?
Атрибути для сериалізації [Serializable] і
[NonSerializable]
Формати сериалізації
Двійкове форматування. Клас BinaryFormatter
Soap форматування. Клас SoapFormater
2
Andriy Gladkyy
KspDevelop@gmail.com
3. Поняття атрибутів
Атрибути використовуються при створені класів які можуть
бути сериалізовані
Атрибути представлені у вигляді анотацій програмного коду,
які можуть застосовуватись до заданого типу (класу,
інтерфейсу, структури), а також до полів типу.
Самі атрибути в платформі .Net являються типами (класами),
що розширюють базовий клас System.Atribute
Andriy Gladkyy
KspDevelop@gmail.com 3
5. Що таке сериалізація?
Це збереження стану об’єкта в байтовий потік, з метою його
(об’єкта) подальшого відновлення.
Збережена послідовність байт містить всю необхідну інформацію
для відновлення об’єкта.
За допомогою сериалізації просто зберігати великі об’єми даних (в
різних форматах).
Збереження даних за допомогою сервісів сериалізації набагато
зручніше, ніж пряме використання засобів читання/запис, в
просторі імен System.IO
Використання сериалізації також відіграє важливу роль при
копіюванні об’єкта на віддалений комп’ютер
Andriy Gladkyy
KspDevelop@gmail.com 5
6. Атрибути для сериалізації [Serializable] і [NonSerializable]
Щоб зробити об’єкт доступним серверу сериалізації .Net,
достатньо помітити кожний зв’язаний клас атрибутом
[Serializable].
Якщо необхідно, щоб деякі члени даного класу не повинні (чи
не можуть) брати участь в процесі сериалізації, потрібно
позначити відповідне поле атрибутом [NonSerializable].
Атрибути [Serializable] не наслідуються. Тому похідний клас
також потрібно позначити атрибутом [Serializable]
Andriy Gladkyy
KspDevelop@gmail.com 6
7. Формати сериалізації
Сериалізація в двійковий формат. Здійснюється об’єктом класу
BinaryFormatter, що знаходиться в просторі імен
System.Runtime.Serialization.Formatters.Binary
Сериалізація в формат SOAP (Simple Object Access Protocol).
Здійснюється об’єктом класу SoapFormater, який знаходиться в
просторі імен System.Runtime.Serialization.Formatters.Soap.
BinaryFormatter зберігає об’єкт абсолютно точно.
SoapFormater не записуює абсолютні імена і компоновочні
блоки. Даний формат сериалізації призначений для зберігання
стану об’єкта, таким чином, щоб він міг використовуватись в
будь якій операційній системі для будь якого каркасу програми
(.Net, Java, QT), в будь якій мові програмування.
Andriy Gladkyy
KspDevelop@gmail.com 7
8. Двійкове форматування. Клас
BinaryFormatter
В класі BinaryFormatter визначено два методи, за допомогою
яких виконується сериалізація/десериалізація об’єктів:
BinaryFormatter сериалізує як відкриті так і закриті поля і
властивості об’єкта.
Andriy Gladkyy
KspDevelop@gmail.com 8
10. Soap форматування. Клас SoapFormater
SoapFormater зберігає об’єкт в повідомлені SOAP. Даний
варіант форматування є кращим вибором для передачі об’єктів
засобами віддаленої взаємодії по протоколу HTTP.
SOAP визначає стандартний процес, за допомогою якого можна
викликати методи незалежні від платформи і ОС способом для
Web- сервісів XML
SOAP являється XML мовою
Andriy Gladkyy
KspDevelop@gmail.com 10