IFormatter Interface


Provides functionality for formatting serialized objects.

public interface class IFormatter
public interface IFormatter
public interface IFormatter
type IFormatter = interface
type IFormatter = interface
Public Interface IFormatter


This interface must be implemented by any class identified as a formatter in the System.Runtime.Serialization architecture.

Objects controlling their own serialization can do so by implementing the ISerializable interface. In order for an object to be serialized, you must mark that object as being serializable. You can do this by applying the serializable attribute to a class. If any object in the graph is not serializable, serialization will fail.

Notes to Implementers

All formatters must implement this interface. Use Serialize(Stream, Object) to serialize an object or graph of objects. Use Deserialize(Stream) to deserialize a stream and create a clone of the original object or graph of objects.



Gets or sets the SerializationBinder that performs type lookups during deserialization.


Gets or sets the StreamingContext used for serialization and deserialization.


Gets or sets the SurrogateSelector used by the current formatter.



Deserializes the data on the provided stream and reconstitutes the graph of objects.

Serialize(Stream, Object)

Serializes an object, or graph of objects with the given root to the provided stream.

Applies to

See also