6

HttpContextCacheItems属性之间有什么区别?

从 MSDN 文档:

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

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

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

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

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

HttpContext 的 Cache 和 Items 属性有什么区别?请尝试详细说明为什么您会在不同的现实世界场景中选择使用其中一种。

4

1 回答 1

12

项目是每个请求的,因此它仅适用于该给定 HTTP 请求的给定用户。缓存在内存中存储一​​段持久的时间,它不依赖于特定的用户。因此缓存可以跨多个请求在多个用户之间共享,但 Items 是每个用户每个请求的。

这取决于您希望数据存在多长时间。我使用 Items 在 EF 中存储诸如 ObjectContext 或 DbContext 之类的内容,我只想为给定的请求共享这些内容。但是引用所有用户将在许多请求中使用的表数据,因此缓存会更好。

于 2013-02-07T16:49:03.147 回答