Definition of Serialization
Serialization
is the process of taking an object and converting it to a format in
which it can be transported across a network or persisted to a storage
location. The storage location could be as simple as using a file or a
database. The serialized format contains the object's state
information. Deserialization is the process of using the serialized
state information to reconstruct the object from the serialized state
to its original state. In essence, the process of serialization allows
an object to be serialized, shipped across the network for remoting or
persisted in a storage location such as the ASP.NET cache, and then be
reconstructed for use at a later point in time.
Serialization Formats
Types of Serialization
Serialization can be of the following types:
· Binary Serialization
· SOAP Serialization
· XML Serialization
· Custom Serialization
Binary Serialization
Binary
serialization is a mechanism which writes the data to the output stream
such that it can be used to re-construct the object automatically. The
term binary in its name implies that the necessary information that is
required to create an exact binary copy of the object is saved onto the
storage media. A notable difference between Binary serialization and
XML serialization is that Binary serialization preserves instance
identity while XML serialization does not. In other words, in Binary
serialization the entire object state is saved while in XML
serialization only some of the object data is saved. Binary
serialization can handle graphs with multiple references to the same
object; XML serialization will turn each reference into a reference to
a unique object.
SOAP Serialization
The SOAP protocol is
ideal for communicating between applications that use heterogeneous
architectures. In order to use SOAP serialization in .NET we have to
add a reference to System.Runtime.Serialization.Formatters.Soap in the
application. The basic advantage of SOAP serialization is portability.
The SoapFormatter serializes objects into SOAP messages or parses SOAP
messages and extracts serialized objects from the message.
XML Serialization
According
to MSDN, "XML serialization converts (serializes) the public fields and
properties of an object or the parameters and returns values of
methods, into an XML stream that conforms to a specific XML Schema
definition language (XSD) document. XML serialization results in
strongly typed classes with public properties and fields that are
converted to a serial format (in this case, XML) for storage or
transport. Because XML is an open standard, the XML stream can be
processed by any application, as needed, regardless of platform."
Implementing XML Serialization in .Net is quite simple. The basic class
that we need to use is the XmlSerializer for both serialization and
de-serialization. The Web Services use the SOAP protocol for
communication and the return types and the parameters are all
serialized using the XmlSerializer class. XML Serialization is however,
much slower compared to Binary serialization.
Define a Serializable class in C#
Using ISerializable
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.getobjectdata.aspx