SlideShare a Scribd company logo
1 of 11
.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

Viewers also liked (8)

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

Similar to Net framework і c# module 17

лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex DevelopingRoman Shuper
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
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 KindritskyiFwdays
 
WordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting themeWordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting themeTrilipuT
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиОлексій Артеменко
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro OverviewKiev ALT.NET
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_netRingonoki
 
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. OOPAndrii Hladkyi
 
System programing module 1
System programing module 1System programing module 1
System programing module 1Andrii Hladkyi
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковIgor Bronovskyy
 
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. InterfacesAndrii Hladkyi
 
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...lisovvolod
 

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

лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Wcf module 2
Wcf module 2Wcf module 2
Wcf module 2
 
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...
 
"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
 
WordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting themeWordPress meetup Kyiv - Starting theme
WordPress meetup Kyiv - Starting theme
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапи
 
8
88
8
 
Caliburn Micro Overview
Caliburn Micro OverviewCaliburn Micro Overview
Caliburn Micro Overview
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
 
Ddd
DddDdd
Ddd
 
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
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
 
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
 
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
 

More from Andrii Hladkyi

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, AbstractionsAndrii 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 CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii 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. GenericsAndrii 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, EventsAndrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii 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
 
System programing module 3
System programing module 3System programing module 3
System programing module 3Andrii Hladkyi
 

More from Andrii Hladkyi (19)

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
 
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
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
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
 
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
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 

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