Name

Formatter

Synopsis

This is the abstract base class for all runtime serialization formatters. It implements the IFormatter interface, which provides the properties that select the binder, surrogates, and streaming context of the formatter. This interface also implements the Serialize( ) and Deserialize( ) methods.

Additionally, the Formatter manages the queue of objects to serialize and provides a set of Write* methods for writing types to the stream.

public abstract class Formatter : IFormatter {
// Protected Constructors
   protected Formatter( );
// Protected Instance Fields
   protected ObjectIDGenerator m_idGenerator;
   protected Queue m_objectQueue;
// Public Instance Properties
   public abstract SerializationBinder Binder{set; get; }
//implements IFormatter
   public abstract StreamingContext Context{set; get; }       
// implements IFormatter
   public abstract ISurrogateSelector SurrogateSelector{set; get; }
// implements IFormatter
                  // Public Instance Methods
   public abstract object Deserialize(System.IO.Stream serializationStream)
// implements IFormatter
   public abstract void Serialize(System.IO.Stream serializationStream, object graph)
// implements IFormatter
                  // Protected Instance Methods
   protected virtual object GetNext(out long objID);
   protected virtual long Schedule(object obj);
   protected abstract void WriteArray(object obj, string name, Type memberType);
   protected abstract void WriteBoolean(bool val, string name);
   protected abstract void WriteByte(byte val, string name); protected abstract ...

Get C# in a Nutshell, Second Edition 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.