私信  •  关注

Adrian

Adrian 最近回复了

我在使用 RegisterSerializer 方法,正如它抱怨的那样,它已经注册了一个序列化程序,但另一种方法是编写自己的序列化提供程序并使用它。

提供程序如下:

public class CustomSerializationProvider : IBsonSerializationProvider
{
    private static readonly DecimalSerializer DecimalSerializer = new DecimalSerializer(BsonType.Decimal128);
    private static readonly NullableSerializer<decimal> NullableSerializer = new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128));

    public IBsonSerializer GetSerializer(Type type)
    {
        if (type == typeof(decimal)) return DecimalSerializer;
        if (type == typeof(decimal?)) return NullableSerializer;

        return null; // falls back to Mongo defaults
    }
}

你需要打电话登记

BsonSerializer.RegisterSerializationProvider(new CustomSerializationProvider());