public GroBufWriter(long serializerId, IDataMembersExtractor dataMembersExtractor, IGroBufCustomSerializerCollection customSerializerCollection, GroBufOptions options, Func <Type, IGroBufCustomSerializer> factory, Func <Type, IGroBufCustomSerializer> baseFactory) { this.serializerId = serializerId; this.dataMembersExtractor = dataMembersExtractor; this.Options = options; sizeCounterCollection = new SizeCounterCollection(customSerializerCollection, factory, baseFactory); writerCollection = new WriterCollection(customSerializerCollection, factory, baseFactory); assembly = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(Guid.NewGuid().ToString()), AssemblyBuilderAccess.Run); module = assembly.DefineDynamicModule(Guid.NewGuid().ToString()); trackReferences = options.HasFlag(GroBufOptions.PackReferences); }
public GroBufReader(long serializerId, IDataMembersExtractor dataMembersExtractor, IGroBufCustomSerializerCollection customSerializerCollection, GroBufOptions options, Func <Type, IGroBufCustomSerializer> factory, Func <Type, IGroBufCustomSerializer> baseFactory) { this.serializerId = serializerId; this.dataMembersExtractor = dataMembersExtractor; this.customSerializerCollection = customSerializerCollection; this.options = options; this.factory = factory; this.baseFactory = baseFactory; var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(Guid.NewGuid().ToString()), AssemblyBuilderAccess.Run); module = assembly.DefineDynamicModule(Guid.NewGuid().ToString()); readerCollection = new ReaderCollection(customSerializerCollection, factory, baseFactory, module); }
public Serializer(IDataMembersExtractor dataMembersExtractor, IGroBufCustomSerializerCollection customSerializerCollection = null, GroBufOptions options = GroBufOptions.None) { customSerializerCollection = customSerializerCollection ?? new DefaultGroBufCustomSerializerCollection(); Func <Type, IGroBufCustomSerializer> factory = type => new InternalSerializer(writer, reader, type, false); Func <Type, IGroBufCustomSerializer> baseFactory = type => new InternalSerializer(writer, reader, type, true); var id = Interlocked.Increment(ref serializerId) - 1; writer = new GroBufWriter(id, dataMembersExtractor, customSerializerCollection, options, factory, baseFactory); reader = new GroBufReader(id, dataMembersExtractor, customSerializerCollection, options, factory, baseFactory); if (options.HasFlag(GroBufOptions.WriteEmptyObjects)) { writerWritingEmptyObjects = writer; } else { id = Interlocked.Increment(ref serializerId) - 1; writerWritingEmptyObjects = new GroBufWriter(id, dataMembersExtractor, customSerializerCollection, options | GroBufOptions.WriteEmptyObjects, factory, baseFactory); } }
public WriterTypeBuilder(GroBufWriter groBufWriter, ModuleBuilder module, IWriterCollection writerCollection, IDataMembersExtractor dataMembersExtractor) { this.groBufWriter = groBufWriter; this.module = module; this.writerCollection = writerCollection; this.dataMembersExtractor = dataMembersExtractor; }
public WriterTypeBuilderContext(GroBufWriter groBufWriter, ModuleBuilder module, Type constantsType, Dictionary <Type, FieldInfo[]> fields, IWriterCollection writerCollection, IDataMembersExtractor dataMembersExtractor) { GroBufWriter = groBufWriter; Module = module; ConstantsType = constantsType; this.fields = fields; this.writerCollection = writerCollection; this.dataMembersExtractor = dataMembersExtractor; }
public ReaderConstantsBuilderContext(GroBufReader groBufReader, TypeBuilder constantsBuilder, IReaderCollection readerCollection, IDataMembersExtractor dataMembersExtractor) { GroBufReader = groBufReader; ConstantsBuilder = constantsBuilder; this.readerCollection = readerCollection; this.dataMembersExtractor = dataMembersExtractor; }
public SizeCounterConstantsBuilderContext(GroBufWriter groBufWriter, TypeBuilder constantsBuilder, ISizeCounterCollection sizeCounterCollection, IDataMembersExtractor dataMembersExtractor) { GroBufWriter = groBufWriter; ConstantsBuilder = constantsBuilder; this.sizeCounterCollection = sizeCounterCollection; this.dataMembersExtractor = dataMembersExtractor; }
public ReaderTypeBuilderContext(GroBufReader groBufReader, ModuleBuilder module, Type constantsType, Dictionary <Type, FieldInfo[]> fields, IReaderCollection readerCollection, IDataMembersExtractor dataMembersExtractor) { GroBufReader = groBufReader; Module = module; ConstantsType = constantsType; this.fields = fields; this.readerCollection = readerCollection; this.dataMembersExtractor = dataMembersExtractor; Lengths = typeof(GroBufHelpers).GetField("Lengths", BindingFlags.Static | BindingFlags.Public); }
public ReaderTypeBuilder(GroBufReader groBufReader, ModuleBuilder module, IReaderCollection readerCollection, IDataMembersExtractor dataMembersExtractor) { this.groBufReader = groBufReader; this.module = module; this.readerCollection = readerCollection; this.dataMembersExtractor = dataMembersExtractor; }
public SizeCounterTypeBuilder(GroBufWriter groBufWriter, ModuleBuilder module, ISizeCounterCollection sizeCounterCollection, IDataMembersExtractor dataMembersExtractor) { this.groBufWriter = groBufWriter; this.module = module; this.sizeCounterCollection = sizeCounterCollection; this.dataMembersExtractor = dataMembersExtractor; }
public WriterConstantsBuilderContext(GroBufWriter groBufWriter, TypeBuilder constantsBuilder, IWriterCollection writerCollection, IDataMembersExtractor dataMembersExtractor) { GroBufWriter = groBufWriter; ConstantsBuilder = constantsBuilder; this.writerCollection = writerCollection; this.dataMembersExtractor = dataMembersExtractor; }