ݺߣ

ݺߣShare a Scribd company logo
.NET Framework & C#
Модуль 17 Сериалізація об’єктів
В цьому модулі:
 Поняття атрибутів
 Що таке сериалізація?
 Атрибути для сериалізації [Serializable] і
[NonSerializable]
 Формати сериалізації
◦ Двійкове форматування. Клас BinaryFormatter
◦ XML-форматування. Клас XmlSerializer
◦ Soap форматування. Клас SoapFormater
2
Andriy Gladkyy
KspDevelop@gmail.com
Поняття атрибутів
 Атрибути використовуються при створені класів які можуть
бути сериалізовані
 Атрибути представлені у вигляді анотацій програмного коду,
які можуть застосовуватись до заданого типу (класу,
інтерфейсу, структури), а також до полів типу.
 Самі атрибути в платформі .Net являються типами (класами),
що розширюють базовий клас System.Atribute
Andriy Gladkyy
KspDevelop@gmail.com 3
Andriy Gladkyy
KspDevelop@gmail.com 4
Демонстрація
Що таке сериалізація?
 Це збереження стану об’єкта в байтовий потік, з метою його
(об’єкта) подальшого відновлення.
 Збережена послідовність байт містить всю необхідну інформацію
для відновлення об’єкта.
 За допомогою сериалізації просто зберігати великі об’єми даних (в
різних форматах).
 Збереження даних за допомогою сервісів сериалізації набагато
зручніше, ніж пряме використання засобів читання/запис, в
просторі імен System.IO
 Використання сериалізації також відіграє важливу роль при
копіюванні об’єкта на віддалений комп’ютер
Andriy Gladkyy
KspDevelop@gmail.com 5
Атрибути для сериалізації [Serializable] і [NonSerializable]
 Щоб зробити об’єкт доступним серверу сериалізації .Net,
достатньо помітити кожний зв’язаний клас атрибутом
[Serializable].
 Якщо необхідно, щоб деякі члени даного класу не повинні (чи
не можуть) брати участь в процесі сериалізації, потрібно
позначити відповідне поле атрибутом [NonSerializable].
 Атрибути [Serializable] не наслідуються. Тому похідний клас
також потрібно позначити атрибутом [Serializable]
 Якщо серіалізуючий клас містить посилання на об'єкти інших
класів, які позначені атрибутом SerializableAttribute, ці об'єкти
також будуть серіалізовані.
Andriy Gladkyy
KspDevelop@gmail.com 6
Як відбувається серіалізація
Andriy Gladkyy
KspDevelop@gmail.com 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 8
Двійкове форматування. Клас
BinaryFormatter
 В класі BinaryFormatter визначено два методи, за допомогою
яких виконується серіалізація/десеріалізація об’єктів:
 BinaryFormatter сериалізує як відкриті так і закриті поля і
властивості об’єкта.
Andriy Gladkyy
KspDevelop@gmail.com 9
XML форматування
 При XML-серіализації відкриті поля і властивості об'єкта або
параметри і повернені значення методів серіалізуются в XML-
потік, складеним на мові XSD (мова визначення схеми XML)
 XML-серіалізація призводить до утворення строго типізованих
класів з відкритими властивостями і полями, які
перетворюються в формат XML.
 Простір імен System.Xml.Serialization містить класи, необхідні
для серіалізації і десеріалізациї XML.
Andriy Gladkyy
KspDevelop@gmail.com 10
Andriy Gladkyy
KspDevelop@gmail.com 11
Демонстрація
Soap форматування. Клас SoapFormater
 SoapFormater зберігає об’єкт в повідомлені SOAP. Даний
варіант форматування є кращим вибором для передачі об’єктів
засобами віддаленої взаємодії по протоколу HTTP.
 SOAP визначає стандартний процес, за допомогою якого можна
викликати методи незалежні від платформи і ОС способом для
Web- сервісів XML
 SOAP являється XML мовою
Andriy Gladkyy
KspDevelop@gmail.com 12
Демонстрація
Andriy Gladkyy
KspDevelop@gmail.com 13

More Related Content

What's hot (12)

PPTX
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
PPTX
System programing module 2. Threads
Andrii Hladkyi
PPTX
12 Architecture
eleksdev
PPTX
NET Framework and C# Module 12.2. Garbage Collector
Andrii Hladkyi
PPTX
Net Framework and C# Module 3 4. Inheritance, Abstractions
Andrii Hladkyi
PPTX
DrupalTour. Zhytomyr — Entity API in Drupal 7 (Ivan Tibezh, InternetDevels)
Drupaltour
PPTX
NET Framework and C# Module 6. Delegates, Events
Andrii Hladkyi
PPTX
.NET Platform. C# Basics
eleksdev
PPTX
Advanced c sharp part 3
eleksdev
PDF
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
PPTX
Net framework і c# module 9
Andrii Hladkyi
PPTX
Angular. presentation
eleksdev
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
System programing module 2. Threads
Andrii Hladkyi
12 Architecture
eleksdev
NET Framework and C# Module 12.2. Garbage Collector
Andrii Hladkyi
Net Framework and C# Module 3 4. Inheritance, Abstractions
Andrii Hladkyi
DrupalTour. Zhytomyr — Entity API in Drupal 7 (Ivan Tibezh, InternetDevels)
Drupaltour
NET Framework and C# Module 6. Delegates, Events
Andrii Hladkyi
.NET Platform. C# Basics
eleksdev
Advanced c sharp part 3
eleksdev
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
Net framework і c# module 9
Andrii Hladkyi
Angular. presentation
eleksdev

Viewers also liked (6)

PPTX
Wcf module 3.3
Andrii Hladkyi
PPTX
Wcf module 3.5
Andrii Hladkyi
PPTX
Uml module 4
Andrii Hladkyi
PPTX
Net framework і c# lesson1
Andrii Hladkyi
PPTX
Design pattern module 1
Andrii Hladkyi
PPTX
Win api module_6.2
Andrii Hladkyi
Wcf module 3.3
Andrii Hladkyi
Wcf module 3.5
Andrii Hladkyi
Uml module 4
Andrii Hladkyi
Net framework і c# lesson1
Andrii Hladkyi
Design pattern module 1
Andrii Hladkyi
Win api module_6.2
Andrii Hladkyi
Ad

More from Andrii Hladkyi (17)

PPTX
Net Framework and c# Lesson 1
Andrii Hladkyi
PPTX
Wpf module 2
Andrii Hladkyi
PPTX
Wpf module 1
Andrii Hladkyi
PPTX
Msp module 3
Andrii Hladkyi
PPTX
Msp module 2
Andrii Hladkyi
PPTX
Msp module 1
Andrii Hladkyi
PPTX
Ado.net module 2
Andrii Hladkyi
PPTX
Ado.net module 1
Andrii Hladkyi
PPTX
Design pattern module 1
Andrii Hladkyi
PPTX
Win api module_2.0_gdi+
Andrii Hladkyi
PPTX
Win api module_1.1_ok
Andrii Hladkyi
PPTX
Uml module 6
Andrii Hladkyi
PPTX
Uml module 5
Andrii Hladkyi
PPTX
Uml module 3
Andrii Hladkyi
PPTX
Uml module 2
Andrii Hladkyi
PPTX
Uml module 1
Andrii Hladkyi
PPTX
System programing module 3
Andrii Hladkyi
Net Framework and c# Lesson 1
Andrii Hladkyi
Wpf module 2
Andrii Hladkyi
Wpf module 1
Andrii Hladkyi
Msp module 3
Andrii Hladkyi
Msp module 2
Andrii Hladkyi
Msp module 1
Andrii Hladkyi
Ado.net module 2
Andrii Hladkyi
Ado.net module 1
Andrii Hladkyi
Design pattern module 1
Andrii Hladkyi
Win api module_2.0_gdi+
Andrii Hladkyi
Win api module_1.1_ok
Andrii Hladkyi
Uml module 6
Andrii Hladkyi
Uml module 5
Andrii Hladkyi
Uml module 3
Andrii Hladkyi
Uml module 2
Andrii Hladkyi
Uml module 1
Andrii Hladkyi
System programing module 3
Andrii Hladkyi
Ad

Net framework і c# module 17

  • 1. .NET Framework & C# Модуль 17 Сериалізація об’єктів
  • 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