A formatter is an object that knows how to write arbitrary objects to a stream. A formatter exposes this functionality by implementing the IFormatter information from the System.Runtime.Serialization namespace:
Interface IFormatter ' Properties Property Binder() As SerializationBinder Property Context() As StreamingContext Property SurrgateSelector() As ISurrogateSelector ' Methods Function Deserialize(serializationStream As Stream) As Object Sub Serialize(serializationStream As Stream, graph As Object) End Interface
A formatter has two jobs. The first is to serialize arbitrary objects, specifically their fields, including nested objects. The formatter knows which fields to serialize using Reflection, which is the .NET API ...