例如,在 ASP.NET 页面中,您会执行类似的操作
Cache.Add({...})
并通过Cache["key"]
. 在这种情况下,Cache 是System.Web.Caching.Cache
对象。
无论如何在 Web API 控制器中执行这种类型的 ASP.NET 应用程序级缓存?
例如,在 ASP.NET 页面中,您会执行类似的操作
Cache.Add({...})
并通过Cache["key"]
. 在这种情况下,Cache 是System.Web.Caching.Cache
对象。
无论如何在 Web API 控制器中执行这种类型的 ASP.NET 应用程序级缓存?
看看MemoryCache 类。从其 MSDN 文档中:
MemoryCache 类类似于 ASP.NET Cache 类。MemoryCache 类具有许多用于访问缓存的属性和方法,如果您使用过 ASP.NET Cache 类,您会很熟悉这些属性和方法。Cache 和 MemoryCache 类之间的主要区别在于 MemoryCache 类已被更改,以使其可供非 ASP.NET 应用程序的 .NET Framework 应用程序使用。
您可以自己创建 MemoryCache 的新实例,也可以通过MemoryCache.Default
静态属性使用默认的 AppDomain 范围实例。
编辑:如果您希望使用此类型,则需要添加对 System.Runtime.Caching.dll 的引用。
如果您是虚拟主机,为什么不呢?
var context = HttpContext.Current;
if (context != null)
{
if (context.Cache["g"] == null)
{
context.Cache["g"] = 9.81;
}
}
但是您这样做是在添加对 ASP.NET 的依赖项。尽管 ASP.NET Web API 的名称中有 ASP.NET,但 Web API 与主机无关。也就是说,ASP.NET/IIS 不是唯一的托管选项;Web API 也可以自托管。在沿着这条路线走之前,您需要考虑一些事情。
你需要输入
HttpContext.Current.Cache
访问实例。没有在该级别Cache
声明的属性,例如在.Controller
Page
请注意,托管 API 的上下文需要支持缓存。
如果您指的是 ASP.NET Web API 中的输出缓存。看看这个项目,