HttpContext的Cache和Items Properties有什么区别?

Jes*_*ebb 6 asp.net caching httpcontext httpcontext.cache

这个HttpContextCacheItems属性有什么区别?

从MSDN文档:

Cache
获取当前应用程序域的Cache对象.

Items
获取一个键/值集合,可用于在HTTP请求期间在IHttpModule接口和IHttpHandler接口之间组织和共享数据.

我真的不明白该文档试图解释什么.

在处理ASP.NET Web应用程序时,我经常使用Items每个请求的数据缓存,这样多个用户控件最终不会从数据库中查找相同的数据.这篇文章对此进行了描述.

今天,我遇到了Cache属性的用法,看起来像每个请求缓存.我试图理解差异,但找不到比较这两者的任何好的文件.所以我想知道......

HttpContext的Cache和Items属性有什么区别?请尝试详细说明为什么在不同的真实场景中选择使用其中一个的示例.

Bri*_*ins 11

项目是按请求进行的,因此它仅适用于给定HTTP请求的给定用户.缓存在存储器中存储一段时间,并且它不依赖于特定用户.因此,可以跨多个请求跨多个用户共享缓存,但每个请求的每个用户都是Items.

这取决于您希望数据存在多长时间.我使用Items来存储EF中的ObjectContext或DbContext之类的东西,我只希望为该请求共享它.但是所有用户将在许多请求中使用的参考表数据,因此缓存会更好.