Serialization
Serialization
serialization?
To persist an object and save it in a specified storage location like a physical
file or DataBase.
Serialization is the process of converting an object into a stream of bytes in
order to store the object or transmit it to memory, a database, or a file. Its
main purpose is to save the state of an object in order to be able to recreate
it when needed. The reverse process is called deserialization .
The object is serialized to a stream, which carries not just the data, but
information about the object's type, such as its version, culture, and
assembly name. From that stream, it can be stored in a database, a file, or
memory.
Uses for Serialization
Serialization allows the developer to save the state of an object and recreate
it as needed, providing storage of objects as well as data exchange. Through
serialization, a developer can perform actions like sending the object to a
remote application by means of a Web Service, passing an object from one
domain to another, passing an object through a firewall as an XML string, or
maintaining security or user-specific information across applications.
Making an Object Serializable
To serialize an object, you need the object to be serialized, a stream to
contain the serialized object, and
a Formatter. System.Runtime.Serialization contains the classes necessary
for serializing and deserializing objects.
Apply the SerializableAttribute attribute to a type to indicate that
instances of this type can be serialized. A SerializationException exception is
thrown if you attempt to serialize but the type does not have
the SerializableAttribute attribute.
If you do not want a field within your class to be serializable, apply
the NonSerializedAttribute attribute. If a field of a serializable type
contains a pointer, a handle, or some other data structure that is specific to
a particular environment, and the field cannot be meaningfully reconstituted
in a different environment, then you may want to make it nonserializable.
If a serialized class contains references to objects of other classes that are
marked SerializableAttribute, those objects will also be serialized.