public SerializeContext(BinaryWriter writer, bool fillObjectTable = false, DefinitionObjectTable definitions = null) { if (writer == null) { throw new ArgumentNullException("writer"); } BinaryWriter = writer; if (definitions != null) { definitionVisitedObjectIndices = definitions.externalVisitedObjectIndices; } else { definitionVisitedObjectIndices = new Dictionary <object, int>(ReferenceEqualityComparer <object> .Instance); // Empty for easy code } visitedObjectIndices = new Dictionary <object, int>(ReferenceEqualityComparer <object> .Instance); visitedStrings = new Dictionary <string, string>(); // Only create this if asked: visitedObjectTable = fillObjectTable ? new List <object>() : null; }
public DeserializeContext(BinaryReader reader, DefinitionObjectTable definitions = null) { BinaryReader = reader; visitedObjectTable = new List <object>(); if (definitions != null) { definitionObjectTable = definitions.visitedObjectTable; } else { definitionObjectTable = new List <object>(); } }
public SerializeContextWithStatistics(BinaryWriter writer, DefinitionObjectTable definitions = null) : base( writer, true, definitions) { lastPosition = writer.BaseStream.Position; definitionObjectTable = definitions != null ? definitions.visitedObjectTable : null; }