Upload
raynaitstep
View
152
Download
0
Embed Size (px)
Citation preview
Платформата 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