9
Платформата Microsoft .NET и езикът на програмиране C#

NET/C#_20

Embed Size (px)

Citation preview

Page 1: NET/C#_20

Платформата Microsoft .NET иезикът на програмиране C#

Page 2: NET/C#_20

Сериализация на обекти

Page 3: NET/C#_20

Сериализация на обекти

Превръщане на обект в поток от байтове Съхраняване в база, файл Пращане по мрежа

Десериализация

Page 4: NET/C#_20

Атрибути

Serializable – позволява един тип да се сериализира NonSerialized – сериализирането пропуска маркираното поле

[Serializable()]public class MyObject {

public int x; public double a;

[NonSerialized()] public double aSquared;}

Page 5: NET/C#_20

Видове

Бинарна – бърза, компактна, System.Runtime.Serialization

XML – съвместима, System.Xml.Serialization

Basic - автоматично обхожда графа от референции, проблеми с версиите

Custom

Page 6: NET/C#_20

Сериализация

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();

Page 7: NET/C#_20

Сериализация

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();

Page 8: NET/C#_20

Десериализация

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);

Page 9: NET/C#_20

SoapFormatter

BinaryFormatter -> SoapFormatter