ServiceStack Redis客户端的bug

client.Set("key", 0);
当使用上面的语句设置
真正存入redis的却是一个空白字符,而不是0
跟了一下源码,发现
private static byte[] ToBytes<T>(T value)
{
    var bytesValue = value as byte[];
    if (bytesValue == null && !Equals(value, default(T)))
        bytesValue = value.ToJson().ToUtf8Bytes();
    return bytesValue;
}

毛病出在这个default(T)

int的default就是0,所以返回了null

按照这个道理,我如果存入false,他是bool的default,也会是空白字符,实验了一下还真是

if (bytesValue == null &&(value is ValueType || !Equals(value, default(T))))

简单改一下吧。

用了一段时间ServiceStack的这个客户端以后,发现他里面还是有些问题的。

就这还收费

原文地址:https://www.cnblogs.com/czcz1024/p/4424690.html