ݺߣ

ݺߣShare a Scribd company logo
.NET Framework і C#
Модуль 17 Сериалізація об’єктів
В цьому модулі:
 Поняття атрибутів
 Що таке сериалізація?
 Атрибути для сериалізації [Serializable] і
[NonSerializable]
 Формати сериалізації
 Двійкове форматування. Клас BinaryFormatter
 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]
Andriy Gladkyy
KspDevelop@gmail.com 6
Формати сериалізації
 Сериалізація в двійковий формат. Здійснюється об’єктом класу
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
Двійкове форматування. Клас
BinaryFormatter
 В класі BinaryFormatter визначено два методи, за допомогою
яких виконується сериалізація/десериалізація об’єктів:
 BinaryFormatter сериалізує як відкриті так і закриті поля і
властивості об’єкта.
Andriy Gladkyy
KspDevelop@gmail.com 8
Andriy Gladkyy
KspDevelop@gmail.com 9
Демонстрація
Soap форматування. Клас SoapFormater
 SoapFormater зберігає об’єкт в повідомлені SOAP. Даний
варіант форматування є кращим вибором для передачі об’єктів
засобами віддаленої взаємодії по протоколу HTTP.
 SOAP визначає стандартний процес, за допомогою якого можна
викликати методи незалежні від платформи і ОС способом для
Web- сервісів XML
 SOAP являється XML мовою
Andriy Gladkyy
KspDevelop@gmail.com 10
Демонстрація
Andriy Gladkyy
KspDevelop@gmail.com 11

More Related Content

Viewers also liked (8)

Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
Uml module 6
Uml module 6Uml module 6
Uml module 6
Andrii Hladkyi
Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
Andrii Hladkyi

Similar to Net framework і c# module 17 (20)

лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
ssuser1ce94b
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Ukraine
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
Fwdays
WordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting themeWordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting theme
TrilipuT
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапи
Олексій Артеменко
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Collaborator.pro
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳЛекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
ssuser78fc9e
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro Overview
Kiev ALT.NET
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
Ringonoki
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
System programing module 1
System programing module 1System programing module 1
System programing module 1
Andrii Hladkyi
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Igor Bronovskyy
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
Roman Shuper
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Ukraine
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
Fwdays
WordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting themeWordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting theme
TrilipuT
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Vertex AI для лінкбілдингу: класифікація донорів з Image Classification Mode ...
Collaborator.pro
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳЛекція-Ҿ-репозиторій-робота-з-гілками.ٳ
Лекція-Ҿ-репозиторій-робота-з-гілками.ٳ
ssuser78fc9e
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Igor Bronovskyy

More from Andrii Hladkyi (20)

Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
Andrii Hladkyi
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
Andrii Hladkyi
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
Andrii Hladkyi
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
Andrii Hladkyi
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
Andrii Hladkyi
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
Andrii Hladkyi
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
Andrii Hladkyi
Msp module 3
Msp module 3Msp module 3
Msp module 3
Andrii Hladkyi
Msp module 2
Msp module 2Msp module 2
Msp module 2
Andrii Hladkyi
Msp module 1
Msp module 1Msp module 1
Msp module 1
Andrii Hladkyi
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
Andrii Hladkyi
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
Andrii Hladkyi
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
Andrii Hladkyi
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
Andrii Hladkyi
Uml module 1
Uml module 1Uml module 1
Uml module 1
Andrii Hladkyi
System programing module 3
System programing module 3System programing module 3
System programing module 3
Andrii Hladkyi

Net framework і c# module 17

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