SlideShare a Scribd company logo
Платформата Microsoft .NET и
езикът на програмиране C#
Сериализация на обекти
Сериализация на обекти
 Превръщане на обект в поток от байтове
 Съхраняване в база, файл
 Пращане по мрежа
 Десериализация
Атрибути
 Serializable – позволява един тип да се сериализира
 NonSerialized – сериализирането пропуска маркираното поле
[Serializable()]
public class MyObject {
public int x;
public double a;
[NonSerialized()] public double aSquared;
}
Видове
 Бинарна – бърза, компактна, System.Runtime.Serialization
 XML – съвместима, System.Xml.Serialization
 Basic - автоматично обхожда графа от референции, проблеми с версиите
 Custom
Сериализация
MyObject obj = new MyObject();
obj.x = 13;
obj.a = 3.14;
obj.aSquared = obj.a * obj.a;
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
Сериализация
MyObject obj = new MyObject();
obj.x = 13;
obj.a = 3.14;
obj.aSquared = obj.a * obj.a;
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
Десериализация
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Open,
FileAccess.Read, FileShare.Read);
MyObject obj = (MyObject) formatter.Deserialize(stream);
stream.Close();
Console.WriteLine("x: {0}", obj.x);
Console.WriteLine("a: {0}", obj.a);
Console.WriteLine("aSquared: {0}", obj.aSquared);
SoapFormatter
BinaryFormatter -> SoapFormatter

More Related Content

Viewers also liked

.NET/C#_2
.NET/C#_2.NET/C#_2
.NET/C#_2
RaynaITSTEP
 
.NET/C#_13
.NET/C#_13.NET/C#_13
.NET/C#_13
RaynaITSTEP
 
.NET/C#_15
.NET/C#_15.NET/C#_15
.NET/C#_15
RaynaITSTEP
 
.NET/C#_16
.NET/C#_16.NET/C#_16
.NET/C#_16
RaynaITSTEP
 
.NET/C#_17
.NET/C#_17.NET/C#_17
.NET/C#_17
RaynaITSTEP
 
.NET/C#_12
.NET/C#_12.NET/C#_12
.NET/C#_12
RaynaITSTEP
 
.NET/C#_1
.NET/C#_1.NET/C#_1
.NET/C#_1
RaynaITSTEP
 
.NET/C#_18
.NET/C#_18.NET/C#_18
.NET/C#_18
RaynaITSTEP
 
.NET/C#_14
.NET/C#_14.NET/C#_14
.NET/C#_14
RaynaITSTEP
 
.NET/C#_5
.NET/C#_5.NET/C#_5
.NET/C#_5
RaynaITSTEP
 
.NET/C#_4
.NET/C#_4.NET/C#_4
.NET/C#_4
RaynaITSTEP
 

Viewers also liked (11)

.NET/C#_2
.NET/C#_2.NET/C#_2
.NET/C#_2
 
.NET/C#_13
.NET/C#_13.NET/C#_13
.NET/C#_13
 
.NET/C#_15
.NET/C#_15.NET/C#_15
.NET/C#_15
 
.NET/C#_16
.NET/C#_16.NET/C#_16
.NET/C#_16
 
.NET/C#_17
.NET/C#_17.NET/C#_17
.NET/C#_17
 
.NET/C#_12
.NET/C#_12.NET/C#_12
.NET/C#_12
 
.NET/C#_1
.NET/C#_1.NET/C#_1
.NET/C#_1
 
.NET/C#_18
.NET/C#_18.NET/C#_18
.NET/C#_18
 
.NET/C#_14
.NET/C#_14.NET/C#_14
.NET/C#_14
 
.NET/C#_5
.NET/C#_5.NET/C#_5
.NET/C#_5
 
.NET/C#_4
.NET/C#_4.NET/C#_4
.NET/C#_4
 

Similar to .NET/C#_20

Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov
 
Nakov - .NET Framework Overview + Security
Nakov - .NET Framework Overview +  SecurityNakov - .NET Framework Overview +  Security
Nakov - .NET Framework Overview + SecuritySvetlin Nakov
 
AJAX и създаване на богати потребителски интерфейси в браузър
AJAX и създаване на богати потребителски интерфейси в браузърAJAX и създаване на богати потребителски интерфейси в браузър
AJAX и създаване на богати потребителски интерфейси в браузър
svilen.ivanov
 
FABRIQ - Short - Svetlin Nakov
FABRIQ - Short - Svetlin NakovFABRIQ - Short - Svetlin Nakov
FABRIQ - Short - Svetlin NakovSvetlin Nakov
 
Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7
DAVID Academy
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
DAVID Academy
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13
DAVID Academy
 

Similar to .NET/C#_20 (7)

Svetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework OverviewSvetlin Nakov - .NET Framework Overview
Svetlin Nakov - .NET Framework Overview
 
Nakov - .NET Framework Overview + Security
Nakov - .NET Framework Overview +  SecurityNakov - .NET Framework Overview +  Security
Nakov - .NET Framework Overview + Security
 
AJAX и създаване на богати потребителски интерфейси в браузър
AJAX и създаване на богати потребителски интерфейси в браузърAJAX и създаване на богати потребителски интерфейси в браузър
AJAX и създаване на богати потребителски интерфейси в браузър
 
FABRIQ - Short - Svetlin Nakov
FABRIQ - Short - Svetlin NakovFABRIQ - Short - Svetlin Nakov
FABRIQ - Short - Svetlin Nakov
 
Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7Училищен курс по програмиране на C# (2013/2014), занятие №7
Училищен курс по програмиране на C# (2013/2014), занятие №7
 
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET FrameworkКурс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
Курс по информационни технологии (2013) - 4. XML, XSD, XML в .NET Framework
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13
 

More from RaynaITSTEP

Project management professional
Project management professionalProject management professional
Project management professional
RaynaITSTEP
 
Project management it step
Project management it stepProject management it step
Project management it step
RaynaITSTEP
 
Lean startup
Lean startupLean startup
Lean startup
RaynaITSTEP
 
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
RaynaITSTEP
 
DBT_3
DBT_3DBT_3
DBT_2
DBT_2DBT_2
DBT_1
DBT_1DBT_1
monitoring and diagnostics
monitoring and diagnosticsmonitoring and diagnostics
monitoring and diagnostics
RaynaITSTEP
 
network security
network securitynetwork security
network security
RaynaITSTEP
 
networking
networkingnetworking
networking
RaynaITSTEP
 
data security
data securitydata security
data security
RaynaITSTEP
 
configuring disk sand drivers
configuring disk sand driversconfiguring disk sand drivers
configuring disk sand drivers
RaynaITSTEP
 
boot process
boot process  boot process
boot process
RaynaITSTEP
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10
RaynaITSTEP
 
virtualization
virtualizationvirtualization
virtualization
RaynaITSTEP
 
Фотошоп за деца_4
Фотошоп за деца_4Фотошоп за деца_4
Фотошоп за деца_4
RaynaITSTEP
 
Структурни кабелни системи
Структурни кабелни системиСтруктурни кабелни системи
Структурни кабелни системи
RaynaITSTEP
 
Android introduction
Android introductionAndroid introduction
Android introduction
RaynaITSTEP
 
Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2
RaynaITSTEP
 
Adobe Illustrator - Обобщение
Adobe Illustrator - ОбобщениеAdobe Illustrator - Обобщение
Adobe Illustrator - Обобщение
RaynaITSTEP
 

More from RaynaITSTEP (20)

Project management professional
Project management professionalProject management professional
Project management professional
 
Project management it step
Project management it stepProject management it step
Project management it step
 
Lean startup
Lean startupLean startup
Lean startup
 
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
 
DBT_3
DBT_3DBT_3
DBT_3
 
DBT_2
DBT_2DBT_2
DBT_2
 
DBT_1
DBT_1DBT_1
DBT_1
 
monitoring and diagnostics
monitoring and diagnosticsmonitoring and diagnostics
monitoring and diagnostics
 
network security
network securitynetwork security
network security
 
networking
networkingnetworking
networking
 
data security
data securitydata security
data security
 
configuring disk sand drivers
configuring disk sand driversconfiguring disk sand drivers
configuring disk sand drivers
 
boot process
boot process  boot process
boot process
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10
 
virtualization
virtualizationvirtualization
virtualization
 
Фотошоп за деца_4
Фотошоп за деца_4Фотошоп за деца_4
Фотошоп за деца_4
 
Структурни кабелни системи
Структурни кабелни системиСтруктурни кабелни системи
Структурни кабелни системи
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2
 
Adobe Illustrator - Обобщение
Adobe Illustrator - ОбобщениеAdobe Illustrator - Обобщение
Adobe Illustrator - Обобщение
 

.NET/C#_20

  • 1. Платформата Microsoft .NET и езикът на програмиране C#
  • 3. Сериализация на обекти  Превръщане на обект в поток от байтове  Съхраняване в база, файл  Пращане по мрежа  Десериализация
  • 4. Атрибути  Serializable – позволява един тип да се сериализира  NonSerialized – сериализирането пропуска маркираното поле [Serializable()] public class MyObject { public int x; public double a; [NonSerialized()] public double aSquared; }
  • 5. Видове  Бинарна – бърза, компактна, System.Runtime.Serialization  XML – съвместима, System.Xml.Serialization  Basic - автоматично обхожда графа от референции, проблеми с версиите  Custom
  • 6. Сериализация MyObject obj = new MyObject(); obj.x = 13; obj.a = 3.14; obj.aSquared = obj.a * obj.a; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, obj); stream.Close();
  • 7. Сериализация MyObject obj = new MyObject(); obj.x = 13; obj.a = 3.14; obj.aSquared = obj.a * obj.a; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, obj); stream.Close();
  • 8. Десериализация IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read); MyObject obj = (MyObject) formatter.Deserialize(stream); stream.Close(); Console.WriteLine("x: {0}", obj.x); Console.WriteLine("a: {0}", obj.a); Console.WriteLine("aSquared: {0}", obj.aSquared);