Namespace: System.Runtime.Serialization
Serialization is the process of converting object so that
they can be transmitted over the network, or stored in file for later use, or
passing them to a web service or any other application.
.Net WebServices, Session Object, .Net Remoting and clipboard
rely on Serialization.
Binary Serialization:
It’s efficient but not portable solution.
String data = “Hello”;
FileStream fs = new
FileStream(“FileStream.Data”, FileMode.Create);
BinaryFormatter bf = new
BinarFormatter ();
Bf.Serilize(fs, data);
//Wrting Objects
Bf.Serilize(fs,System.DateTime.Now);
Fs.close();
Deserializing Objects
FileStream fs = new FileStream(“FileStream.Data”,
FileMode.Open);
BinaryFormatter bf = new
BinarFormatter ();
String Data =
(String)bf.Deserialize(fs);
DateTime vTime = (DateTime)
bf.Derialize(fs);
To serialize a class one must the Serializeable
attribute to that class.
To omit some attribute from deserialization put the [NonSerilized]
To Recreate a variables value when an object is been deserialized
on can implement IDeserializationCallback.OnDeserialization(object sender)
in his object.
Version 2.0 and above automatically ignores if some field is
being serialized by the previous version, but the newer version doesn’t not
require that.
If a new filed is being added, and version compatibility with
previous version is required one must put [OptionalField]
attribute to that new member variable. And for all optional fields do provide
default values in IDeserializationCallback.OnDeserialization(object sender)
method.
SOAP based Serialization:
It’s similar to that Binary
serialization, but the output is human readable format (XML Format). It’s
commonly used in web services.
One can use System.Runtime.Serialization.Formatters.Soap.SoapFormatter.
XML related serialization attributes include:
SoapAttribute, SoapElement, SoapEnum, SoapIgnore, and SoapInclude(public
class declaration, and public methods for WSDL).
Comments