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

More Related Content

What's hot

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 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
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14Andrii 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
 
12 Architecture
12 Architecture12 Architecture
12 Architectureeleksdev
 
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
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3eleksdev
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10Andrii Hladkyi
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9Andrii Hladkyi
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOPeleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentationeleksdev
 
Version control
Version controlVersion control
Version controleleksdev
 
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
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2eleksdev
 
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7Nikita Pavliuchenko
 

What's hot (18)

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 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
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
 
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
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
 
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
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
 
Version control
Version controlVersion control
Version control
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
 
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7
Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7
 
Xdebug (ukr)
Xdebug (ukr)Xdebug (ukr)
Xdebug (ukr)
 

Similar to Net framework and C# module 17. Serialization

Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex DevelopingRoman Shuper
 
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...lisovvolod
 
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
 
System programing module 1
System programing module 1System programing module 1
System programing module 1Andrii Hladkyi
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_netRingonoki
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming IntroMaksym Davydov
 
"Key considerations in implementing a distributed message-sending system usin...
"Key considerations in implementing a distributed message-sending system usin..."Key considerations in implementing a distributed message-sending system usin...
"Key considerations in implementing a distributed message-sending system usin...Fwdays
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковIgor Bronovskyy
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиОлексій Артеменко
 
Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)garasym
 

Similar to Net framework and C# module 17. Serialization (15)

Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML.  Форматуванн...
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
 
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...
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
 
Crawler.pptx
Crawler.pptxCrawler.pptx
Crawler.pptx
 
вашенюк
вашенюквашенюк
вашенюк
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming Intro
 
Розгортання середовища для Camunda
Розгортання середовища для CamundaРозгортання середовища для Camunda
Розгортання середовища для Camunda
 
"Key considerations in implementing a distributed message-sending system usin...
"Key considerations in implementing a distributed message-sending system usin..."Key considerations in implementing a distributed message-sending system usin...
"Key considerations in implementing a distributed message-sending system usin...
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
 
Розробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапиРозробка веб-сайту. Основні етапи
Розробка веб-сайту. Основні етапи
 
Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)Казьмірчук Р.Р. (06.03.2012)
Казьмірчук Р.Р. (06.03.2012)
 

More from Andrii Hladkyi (20)

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
 
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
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 

Net framework and C# module 17. Serialization

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