我一直在阅读一些关于 c# 3.5 中的缓存的信息。有点困惑,希望能澄清一下两者之间的区别
HttpContext.Current.Cache
对比HttpRuntime.Cache
对比System.Web.Caching.Cache
此外,我已阅读不建议在非 Web 应用程序中使用上述任何内容,但它可以工作。有什么缺点?
我一直在阅读一些关于 c# 3.5 中的缓存的信息。有点困惑,希望能澄清一下两者之间的区别
HttpContext.Current.Cache
对比HttpRuntime.Cache
对比System.Web.Caching.Cache
此外,我已阅读不建议在非 Web 应用程序中使用上述任何内容,但它可以工作。有什么缺点?
System.Web.Caching.Cache
是为 Web 应用程序实现缓存的类型。 HttpContext.Current.Cache
只是一个包装器和返回HttpRuntime.Cache
,它只是System.Web.Caching.Cache
.
更新
请参阅在 ASP.NET 应用程序之外使用 HttpRuntime.Cache 是否可以?你的第二部分。
更新:为什么需要包装 HttpRuntime.Cache?
在我的个人意见中,是HttpContext
传递给IHttpHandler.ProcessPostBack
并HttpApplication
暴露的类型。这将确保使用方法注入注入所有依赖项。因此,他们引入了一定程度的间接性。HttpContext
IHttpModule.Init
处理程序和模块应该不知道托管它们的 HttpRuntime。当您在 ASP.NET 页面中时,建议改用this.Page.Cache
HttpContext.CurrentHttpContext.Current.Cache
或HttpRuntime.Cache
使用 HttpContext.Current 会涉及解析当前线程的开销并HttpRuntime.Cache
会创建外部依赖项。Page.Cache
用HttpContext.Cache
传递给的ProcessRequest