我一直在閱讀關於C#3.5緩存的一些信息。有一點困惑,並希望在闡述什麼是VS System.Web.Caching.Cache
HttpContext.Current.Cache與HttpRuntime.Cache
而且
HttpContext.Current.Cache
VS HttpRuntime.Cache
之間的差異澄清,我一直在使用任何非Web應用程序上面,不建議讀,但它的工作原理。有什麼缺點?
我一直在閱讀關於C#3.5緩存的一些信息。有一點困惑,並希望在闡述什麼是VS System.Web.Caching.Cache
HttpContext.Current.Cache與HttpRuntime.Cache
而且
HttpContext.Current.Cache
VS HttpRuntime.Cache
之間的差異澄清,我一直在使用任何非Web應用程序上面,不建議讀,但它的工作原理。有什麼缺點?
System.Web.Caching.Cache
是爲Web應用程序實現緩存的類型。 HttpContext.Current.Cache
只是一個包裝,並返回HttpRuntime.Cache
這是什麼,只是System.Web.Caching.Cache
的實例。
更新
參考Is it OK to use HttpRuntime.Cache outside ASP.NET applications?你的第二個組成部分。
更新:爲什麼HttpRuntime.Cache需要打包?
我個人認爲,HttpContext
是被傳遞給IHttpHandler.ProcessPostBack
和HttpApplication
暴露出其傳遞IHttpModule.Init
HttpContext
類型。這將確保使用方法注入來注入所有依賴項。因此他們引入了一個間接的層次。
處理程序和模塊應該不知道它們所在的HttpRuntime。當您處於ASP.NET頁面中時,建議使用this.Page.Cache
而不是HttpContext.Current.Cache
或HttpRuntime.Cache
作爲使用HttpContext.Current會涉及解決當前線程的開銷,並且HttpRuntime.Cache
會創建外部依賴項。 Page.Cache
初始化爲HttpContext.Cache
,它傳遞給ProcessRequest
爲什麼'HttpRuntime.Cache'需要被包裝? – 2012-04-25 06:36:51
更新了我的答案 – Ramesh 2012-04-25 06:57:45