StackExchange RedisValue ToByteArray 不可序列化
StackExchange RedisValue ToByteArray not Serializable
我是 StackExchange.Redis
的新手,但我被分配了一项任务,将我们的 Redis 缓存转换为 StackExchange.Redis。也就是说,在我们的一种方法中 return 数据库值为 byte[]
.
当我尝试时:var redisData = database.StringGet(key).ToByteArray();
我收到这个错误:
Type 'StackExchange.Redis.RedisValue' in Assembly 'StackExchange.Redis, Version=1.1.608.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable
但是当我这样做时:var redisData = database.StringGet(key);
我得到一个值。
所以我的问题是:如何将 redisData
转换为 byte[]
?
如果您看一下 StringGet()
, which is RedisValue
, you will see, that is it implicitly convertible to string
and byte[]
返回的类型。转换它所需要做的就是简单地将它用作 byte[]
类型的变量(让隐式运算符完成工作)或显式转换它。
var redisData = (byte[])database.StringGet(key);
我假设,您存储的数据是一个正确的 byte[]
数组。否则,如果您存储了 string
,例如。序列化对象,你将得到 string
.
的字节表示
我是 StackExchange.Redis
的新手,但我被分配了一项任务,将我们的 Redis 缓存转换为 StackExchange.Redis。也就是说,在我们的一种方法中 return 数据库值为 byte[]
.
当我尝试时:var redisData = database.StringGet(key).ToByteArray();
我收到这个错误:
Type 'StackExchange.Redis.RedisValue' in Assembly 'StackExchange.Redis, Version=1.1.608.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable
但是当我这样做时:var redisData = database.StringGet(key);
我得到一个值。
所以我的问题是:如何将 redisData
转换为 byte[]
?
如果您看一下 StringGet()
, which is RedisValue
, you will see, that is it implicitly convertible to string
and byte[]
返回的类型。转换它所需要做的就是简单地将它用作 byte[]
类型的变量(让隐式运算符完成工作)或显式转换它。
var redisData = (byte[])database.StringGet(key);
我假设,您存储的数据是一个正确的 byte[]
数组。否则,如果您存储了 string
,例如。序列化对象,你将得到 string
.