Encoding转Decoding场景下如何获取分布式缓存中解码后的记录
缓存解码实现方案
你存入缓存时使用Encoding.ASCII.GetBytes()将字符串转换为了字节数组,读取时执行逆向操作即可拿到原始内容,操作步骤如下:
- 调用分布式缓存的Get接口取出对应key的字节数组
- 使用
Encoding.ASCII.GetString()将字节数组解码为存入时的原始字符串 - 如果你需要还原为原始的结构化记录对象,需要额外对字符串做反序列化处理
示例代码
// 读取缓存中的字节数组 byte[] cachedData = _cache.Get(key); if (cachedData != null) { // 解码得到原始字符串 string originalString = Encoding.ASCII.GetString(cachedData); // 若存入时是将对象序列化后再转字符串,此处添加反序列化逻辑即可还原对象 // 例如用Json反序列化:var result = JsonSerializer.Deserialize<你的记录类型>(originalString); }
注意:如果存入时你直接调用了自定义类型的默认
ToString()方法,默认输出的是类的全限定名,无法还原为原始记录对象。这种情况建议调整存入逻辑,先将对象序列化为JSON/XML等结构化字符串后再编码存入。
内容的提问来源于stack exchange,提问作者sameera guntimadugu
相关产品推荐
相关产品推荐

