redis 在.net上应用。 序列化与反序列化问题

小辛、 2015-01-09 05:30:20
今天一直在研究缓存, 从网上也找了很多的资料。
最终尝试研究redis 分布式缓存。
redis当存储List<Person>的时候需要进行序列化存储
当我程序第一次启动的时候 调用redis.Set<byte[]>("Person", ser.Serialize(list));的时候 木有问题 完全能存
取的时候也是可以取。
但是当我重新编译项目。 然后在运行的时候 反序列化就失败了。 报错 ser.Deserialize(redis.Get<byte[]>("Person"));


哪位大神能帮我解答一下 这个BUG造成的原因是什么么?
...全文
885 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
trunksssss 2017-09-23
  • 打赏
  • 举报
回复
解决办法呢 楼主 跪求 一摸一样的问题
小辛、 2015-01-22
  • 打赏
  • 举报
回复
引用 2 楼 zmx312502865 的回复:
在类头上加上 [Serializable]
问题不是出在这里的。。。。 能序列化的类 肯定是加了 [Serializable]的 最终找到了原因是因为entityframework 的代理类导致的。
zmx312502865 2015-01-16
  • 打赏
  • 举报
回复
在类头上加上 [Serializable]
小辛、 2015-01-09
  • 打赏
  • 举报
回复

  object obj = ser.Deserialize(redis.Get<byte[]>("Person"));   //重新编译, 这个位置报错。 
      List<Person> list = new List<Person>();

      if (obj != null)
      {
        list = obj as List<Person>;
      }
      if (list != null && list.Count > 0)
      {

      }
      else
      {
        using (var db = new Entities())
        {

          IQueryable<Person> query = db.Person.AsQueryable();
          redis.Set<byte[]>("Warrant_BaseInfo", ser.Serialize(query.ToList()));

        }
      }

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧