程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> USE HttpRuntime.Cache OVER HttpContext.Current.Cache

USE HttpRuntime.Cache OVER HttpContext.Current.Cache

編輯:關於ASP.NET

緩存是在ASP.NET開發中經常需要用到在技術,在使用過程中,通常會用到HttpRuntime.Cache和 HttpContext.Current.Cache。而且在使用過程中,通常會覺得這兩個似乎用哪一個都行,都能達到緩存 數據的目的。那麼這兩個Cache到底有什麼不同呢?在什麼時候用哪一個比較好呢?這裡談談我的一些了 解和看法吧。

兩者的異同

先來看看msdn的解釋

HttpContext.Cache : Gets the ASP.NET Cache object for the current request

HttpContext.Current : Gets the HttpContext object for the current request

從這個解釋看,得到的Cache對象是當前請求的Cache對象。個人認為,這個解釋有點誤導性,會讓 人誤以為這時的Cache對象只是對於當前的Request的。而稍微想一下之後,就會發現這種理解是錯誤的。 如果Cache的內容只對當前的Request有用,那有何須緩存呢?

既然msdn得解釋不行,那就直接看源代碼吧,^_^,用Reflector打開HttpContext.Cache, 可以看到

public Cache Cache 

{ 

      get 

      { 

            return HttpRuntime.Cache; 

      } 

}

從這代碼可以看出,兩者返回的都是是一樣的。

難道這兩者真的就完全一樣嗎?再來看看HttpContext.Current

public static HttpContext Current 

{ 

      get 

      { 

            return (ContextBase.Current as HttpContext); 

      } 

}

ContextBase的源代碼:

internal static object Current 

{ 

      get 

      { 

            return CallContext.HostContext; 

      } 

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved