我的 Web 应用程序正在缓存一个对象列表,以避免必须一遍又一遍地从数据库中获取它们。在一个页面上,从缓存中获取列表,然后将其他对象添加到列表中并显示在数据绑定(bind)控件中。这些额外的对象并不意味着被缓存,但仍然以某种方式被缓存。
当您使用 Cache.Get() 方法时,它应该返回对象引用还是该对象的副本?
请您参考如下方法:
System.Web.Caching.Cache 是内存缓存。这意味着对象引用是从 Cache.Get() 调用返回的内容。当您在执行 get 之后修改引用时,您正在修改仍在缓存中的同一对象。
您需要手动执行克隆操作才能不修改原始对象。
