在MongoDb中存储C#BigInteger

时间:2019-01-31 16:52:43

标签: c# mongodb biginteger

将BigInteger存储在MongoDb中的正确方法是什么?我发现的唯一解决方案是将自定义序列化器编写为MongoDb Decimal128类型:

public class BigIntegerSerializer : SerializerBase<BigInteger>
{
    public override BigInteger Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
    {
        var val = context.Reader.ReadDecimal128();
        return BigInteger.Parse(val.ToString());
    }

    public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, BigInteger value)
    {
        context.Writer.WriteDecimal128(Decimal128.Parse(value.ToString()));
    }
}

0 个答案:

没有答案