Serialization is the process of converting the state of an
object into a form that can be persisted or transported. The
complement of serialization is deserialization, which converts a
stream into an object. Together, these processes allow data to
be easily stored and transferred. The .NET Framework features
two serializing technologies: Binary serialization preserves
type fidelity, which is useful for preserving the state of an
object between different invocations of an application. For
example, you can share an object between different applications
by serializing it to the Clipboard. You can serialize an object
to a stream, to a disk, to memory, over the network, and so
forth. Remoting uses serialization to pass objects "by value"
from one computer or application domain to another. XML
serialization serializes only public properties and fields and
does not preserve type fidelity. This is useful when you want to
provide or consume data without restricting the application that
uses the data. Because XML is an