System.Web.Caching.Cache 行为

Zac*_*ary 1 c# asp.net

我的 Web 应用程序正在缓存对象列表,以避免一遍又一遍地从数据库中获取它们。在一页上,从缓存中获取列表,然后将其他对象添加到列表中并显示在数据绑定控件中。这些额外的对象并不意味着要被缓存,但仍然以某种方式缓存。

当您使用 Cache.Get() 方法时,它是否应该返回对象引用或该对象的副本?

Sco*_*ain 5

System.Web.Caching.Cache是内存中的缓存。这意味着对象引用是从调用返回的内容Cache.Get()。当您在执行 get 操作后修改引用时,您正在修改仍在缓存中的同一对象。

您将需要手动执行克隆操作以不修改原始对象。