我一直在阅读一些关于 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暴露的类型。这将确保使用方法注入注入所有依赖项。因此,他们引入了一定程度的间接性。HttpContextIHttpModule.Init
处理程序和模块应该不知道托管它们的 HttpRuntime。当您在 ASP.NET 页面中时,建议改用this.Page.CacheHttpContext.CurrentHttpContext.Current.Cache或HttpRuntime.Cache使用 HttpContext.Current 会涉及解析当前线程的开销并HttpRuntime.Cache会创建外部依赖项。Page.Cache用HttpContext.Cache传递给的ProcessRequest