Runtime Serialization
Runtime serialization is used to
serialize objects to binary or user-defined formats. In mapping CLR
types to serialization format, the CLR type is favored; that is, it
is assumed that both ends of the serialization channel understand how
to map any given CLR type to a serialization format. With runtime
serialization, you’re guaranteed full fidelity
between the objects you started with and the new objects you end up
with. You can use one of the concrete formatter classes
(BinaryFormatter
or
SoapFormatter
) to serialize your data, or you can
write your own class that implements IFormatter
or
extends Formatter
to do the
work.
In runtime serialization,
serializable objects may be marked as such with the
Serializable
attribute, in which case the
IFormatter
class does all the work of
serialization. Alternatively, a serializable object may implement
ISerializable
, in which case you are responsible
for implementing the GetObjectData( )
method to
provide the necessary information to the
IFormatter
.
Because the built-in formatters favor CLR
datatypes, .NET remoting uses them to serialize objects. This also
means that the SoapFormatter
assumes that the remote end of the serialization stream knows about the CLR, and how to convert objects from their SOAP representation to CLR types. This is fine for homogeneous systems, but the point of XML is to enable disparate systems to communicate. SOAP is useful for such communication between disparate systems, because it ...
Get .NET & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.