Professional Documents
Culture Documents
CS 05
CS 05
Scenarija serijalizacije
Perzistencija
Snimanje objekata u fajl i pribavljanje objekata
iz fajla
“Remoting”
Prosleđivanje vrednosti između više procesa
Atributi za serijalizaciju
Klasa se proglašava serijabilnom upotrebom atributa
Serializable
ISerializable zahteva:
GetObjectData metod koji se zove tokom serijalizacije
koji vraća PropertyBag tipa SerializationInfo
PropertyBag, koji sadrži tip objekta koji se serijalizuje i
ime i objekte koji se serijalizuju
Konstruktor koji se zove tokom deserijalizacije koji koristi
objekat tipa SerializationInfo da rekonstruiše objekat
Primer “Custom” serijalizacije
[Serializable] public class ExampleFoo : ISerializable
{
public int i, j, k;
public ExampleFoo() {}
internal ExampleFoo(SerializationInfo si,
StreamingContext context) {
//Restore our scalar values.
i = si.GetInt32("i");
j = si.GetInt32("j");
k = si.GetInt32("k");
}
public void GetObjectData(SerializationInfo si,
StreamingContext context) {
//SerializationInfo - essentially a property bag
//Add our three scalar values;
si.AddValue("i", i);
si.AddValue("j", j);
si.AddValue("k", k);
Type t = this.GetType();
si.AddValue("TypeObj", t);
}
}