The System.Runtime.Serialization namespace contains classes that can be used for serializing and deserializing objects. Serialization is the process of converting an object or a graph of objects into a linear sequence of bytes for either storage or transmission to another location. Deserialization is the process of taking in stored information and recreating objects from it.
The ISerializable interface provides a way for classes to control their own serialization behavior. Classes in the System.Runtime.Serialization.Formatters namespace control the actual formatting of various data types encapsulated in the serialized objects.
Formatters that serialize and deserialize objects to and from a particular format can be found in the System.Runtime.Serialization.Formatters namespace.
Namespace hierarchy
Classes
Interfaces
| Interface | Description |
| IDeserializationCallback | Indicates that a class is to be notified when deserialization of the entire object graph has been completed. |
| IFormatter | Provides functionality for formatting serialized objects. |
| IFormatterConverter | Provides the connection between an instance of SerializationInfo and the formatter-provided class best suited to parse the data inside the SerializationInfo. |
| IObjectReference | Indicates that the current interface implementer is a reference to another object. |
| ISerializable | Allows an object to control its own serialization and deserialization. |
| ISerializationSurrogate | Implements a serialization surrogate selector that allows one object to perform serialization and deserialization of another. |
| ISurrogateSelector | Indicates a serialization surrogate selector class. |
Structures
| Structure | Description |
| SerializationEntry | Holds the value, Type, and name of a serialized object. |
| StreamingContext | Describes the source and destination of a given serialized stream, as well as a means for serialization to retain that context and an additional caller-defined context. |
Enumerations
| Enumeration | Description |
| StreamingContextStates | Defines a set of flags that specifies the source or destination context for the stream during serialization. |
See Also
.NET Framework Class Library