我对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[]
?
答案 0 :(得分:2)
如果您查看StringGet()
返回的类型RedisValue
,您会看到,它可以隐式转换为string
和byte[]
。转换它所需要做的就是简单地将它用作byte[]
类型的变量(让隐式运算符完成工作)或明确地转换它。
var redisData = (byte[])database.StringGet(key);
我假设您存储的数据是正确的byte[]
数组。否则,如果您存储了string
,例如。序列化对象,您将获得string
的字节表示。