StackExchange RedisValue ToByteArray不可序列化

时间:2016-12-13 16:00:01

标签: c# stackexchange.redis

我对StackExchange.Redis很新,但我被分配了一个任务,将我们的Redis缓存转换为StackExchange.Redis。在我们的一个方法中说,将数据库值返回为byte[]

当我尝试:var redisData = database.StringGet(key).ToByteArray();

我收到此错误:

  

在程序集'StackExchange.Redis中输入'StackExchange.Redis.RedisValue',Version = 1.1.608.0,Culture = neutral,PublicKeyToken = null'未标记为可序列化

但是当我这样做时:var redisData = database.StringGet(key);我得到了一个值。

所以我的问题是:如何将redisData转换为byte[]

1 个答案:

答案 0 :(得分:2)

如果您查看StringGet()返回的类型RedisValue,您会看到,它可以隐式转换为stringbyte[] 。转换它所需要做的就是简单地将它用作byte[]类型的变量(让隐式运算符完成工作)或明确地转换它。

var redisData = (byte[])database.StringGet(key);

我假设您存储的数据是正确的byte[]数组。否则,如果您存储了string,例如。序列化对象,您将获得string的字节表示。