internal SerializationService(IInputOutputFactory inputOutputFactory, int version, IDictionary <int, IDataSerializableFactory> dataSerializableFactories, IDictionary <int, IPortableFactory> portableFactories, ICollection <IClassDefinition> classDefinitions, SerializerHooks hooks, IEnumerable <ISerializerDefinitions> definitions, bool checkClassDefErrors, IPartitioningStrategy partitioningStrategy, int initialOutputBufferSize, ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger <SerializationService>(); _inputOutputFactory = inputOutputFactory; GlobalPartitioningStrategy = partitioningStrategy; _outputBufferSize = initialOutputBufferSize; _bufferPoolThreadLocal = new BufferPoolThreadLocal(this); _portableContext = new PortableContext(this, version); // create data serializer (will be added as constant) var dataSerializer = new DataSerializer(hooks, dataSerializableFactories, loggerFactory); _dataSerializerAdapter = CreateSerializerAdapter <IIdentifiedDataSerializable>(dataSerializer); // create portable serializer (will be added as constant) _portableSerializer = new PortableSerializer(_portableContext, portableFactories); _portableSerializerAdapter = CreateSerializerAdapter <IPortable>(_portableSerializer); // create the serializer of null objects (will be added as constant) _nullSerializerAdapter = CreateSerializerAdapter <object>(new NullSerializer()); // create the serializable adapter (will be added as constant) _serializableSerializerAdapter = CreateSerializerAdapter <object>(new SerializableSerializer()); // add defined serializers foreach (var definition in definitions) { definition.AddSerializers(this); } // add constant serializers AddMoreSerializers(); // add class definitions RegisterClassDefinitions(classDefinitions, checkClassDefErrors); }
internal PortableSerializer(PortableContext context, IEnumerable <KeyValuePair <int, IPortableFactory> > portableFactories) { _context = context; _factories = _factories.Union(portableFactories).ToDictionary(x => x.Key, x => x.Value); }
internal ClassDefinitionContext(PortableContext portableContext, int factoryId) { _portableContext = portableContext; _factoryId = factoryId; }