例如,在ASP.NET页面中,您可以执行类似
的操作 Cache.Add({...})
并通过Cache["key"]
访问它。在此上下文中,Cache是System.Web.Caching.Cache
对象。
在Web API控制器中是否有这种类型的ASP.NET应用程序级缓存?
答案 0 :(得分:10)
如果您是网络托管,为什么不呢?
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也可以自托管。在走这条路线之前,你需要考虑一些事情。
答案 1 :(得分:10)
看看MemoryCache class。从其MSDN文档:
MemoryCache类与ASP.NET Cache类相似。该 MemoryCache类有许多用于访问的属性和方法 如果您使用了ASP.NET缓存,那么您将熟悉的缓存 类。 Cache和MemoryCache类之间的主要区别 是MemoryCache类已被更改为使其可用 不是ASP.NET应用程序的.NET Framework应用程序。
您可以自己创建MemoryCache的新实例,也可以通过MemoryCache.Default
静态属性使用默认的AppDomain范围实例。
编辑:如果您希望使用此类型,则需要添加对System.Runtime.Caching.dll的引用。
答案 2 :(得分:0)
如果您在ASP.NET Web API中引用输出缓存。看看这个项目,
答案 3 :(得分:0)
您需要输入
HttpContext.Current.Cache
访问实例。 Cache
级别没有声明Controller
属性,就像在Page
上一样。
请注意,托管API的上下文需要支持缓存。