我在使用
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());