コード例 #1
0
        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;
        }
コード例 #2
0
        public DeserializeContext(BinaryReader reader, DefinitionObjectTable definitions = null)
        {
            BinaryReader = reader;

            visitedObjectTable = new List <object>();

            if (definitions != null)
            {
                definitionObjectTable = definitions.visitedObjectTable;
            }
            else
            {
                definitionObjectTable = new List <object>();
            }
        }
コード例 #3
0
 public SerializeContextWithStatistics(BinaryWriter writer, DefinitionObjectTable definitions = null) : base(
         writer, true, definitions)
 {
     lastPosition          = writer.BaseStream.Position;
     definitionObjectTable = definitions != null ? definitions.visitedObjectTable : null;
 }