Skip to main content
 首页 » 编程设计

c#之System.Web.Caching.Cache 行为

2024年01月31日26cmt

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

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

请您参考如下方法:

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

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