BTDB.EventStoreLayer.TypeSerializers.GetSimpleSaver C# (CSharp) Method

GetSimpleSaver() public method

public GetSimpleSaver ( ITypeDescriptor descriptor ) : object>.Action
descriptor ITypeDescriptor
return object>.Action
        public Action<AbstractBufferedWriter, object> GetSimpleSaver(ITypeDescriptor descriptor)
        {
            return _simpleSavers.GetOrAdd(descriptor, _newSimpleSaverAction);
        }

Usage Example

        static void StoreObjectCore(TypeSerializers typeSerializers, AbstractBufferedWriter writer, object obj, InfoForType infoForType, ITypeSerializersLightMapping mapping)
        {
            writer.WriteVUInt32((uint)infoForType.Id);
            if (!infoForType.KnownSimpleSaver)
            {
                infoForType.SimpleSaver      = typeSerializers.GetSimpleSaver(infoForType.Descriptor);
                infoForType.KnownSimpleSaver = true;
            }
            var simpleSaver = infoForType.SimpleSaver;

            if (simpleSaver != null)
            {
                simpleSaver(writer, obj);
                return;
            }
            if (!infoForType.KnownComplexSaver)
            {
                infoForType.ComplexSaver      = typeSerializers.GetComplexSaver(infoForType.Descriptor);
                infoForType.KnownComplexSaver = true;
            }
            var complexSaver = infoForType.ComplexSaver;
            var ctx          = new TypeBinarySerializerContext(mapping, writer, obj);

            complexSaver(writer, ctx, obj);
        }