2. В цьому модулі:
Поняття атрибутів
Що таке сериалізація?
Атрибути для сериалізації [Serializable] і
[NonSerializable]
Формати сериалізації
◦ Двійкове форматування. Клас BinaryFormatter
◦ XML-форматування. Клас XmlSerializer
◦ 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]
Якщо серіалізуючий клас містить посилання на об'єкти інших
класів, які позначені атрибутом SerializableAttribute, ці об'єкти
також будуть серіалізовані.
Andriy Gladkyy
KspDevelop@gmail.com 6
8. Формати сериалізації
Серіалізація в двійковий формат. Здійснюється об’єктом класу
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 8
9. Двійкове форматування. Клас
BinaryFormatter
В класі BinaryFormatter визначено два методи, за допомогою
яких виконується серіалізація/десеріалізація об’єктів:
BinaryFormatter сериалізує як відкриті так і закриті поля і
властивості об’єкта.
Andriy Gladkyy
KspDevelop@gmail.com 9
10. XML форматування
При XML-серіализації відкриті поля і властивості об'єкта або
параметри і повернені значення методів серіалізуются в XML-
потік, складеним на мові XSD (мова визначення схеми XML)
XML-серіалізація призводить до утворення строго типізованих
класів з відкритими властивостями і полями, які
перетворюються в формат XML.
Простір імен System.Xml.Serialization містить класи, необхідні
для серіалізації і десеріалізациї XML.
Andriy Gladkyy
KspDevelop@gmail.com 10
12. Soap форматування. Клас SoapFormater
SoapFormater зберігає об’єкт в повідомлені SOAP. Даний
варіант форматування є кращим вибором для передачі об’єктів
засобами віддаленої взаємодії по протоколу HTTP.
SOAP визначає стандартний процес, за допомогою якого можна
викликати методи незалежні від платформи і ОС способом для
Web- сервісів XML
SOAP являється XML мовою
Andriy Gladkyy
KspDevelop@gmail.com 12