2015-04-02 35 views
1

我打算使用CacheManager這應該爲我處理我的緩存。 我什麼時候需要處理它?CacheManager和Dispose

是否每次使用using語句訪問緩存時都會創建它?

在這種情況下,我將不得不每次寫我的初始化?

var cache = CacheFactory.Build("cache1", settings => 
{ 
    settings 
     .WithSystemRuntimeCacheHandle("handle1") 
      .EnablePerformanceCounters() 
      .WithExpiration(ExpirationMode.Absolute, TimeSpan.FromMinutes(10)); 
}); 

或者我該如何使用/處理它?實際上,我得到了代碼分析警告,我應該處理它。

+0

我確實認爲你將永遠處置它,因爲它會自動處理。可能是我們可以在application_shutdown中配置 – Saravanan 2015-04-03 03:12:24

回答

0

答案根本不是;)

您不想處置CacheManager實例。在應用程序中保留靜態實例並且只創建一次CacheManager更爲常見。

這是因爲創建CacheManager和創建緩存客戶端實例並可能打開到分佈式緩存的連接的句柄非常昂貴,而且只能執行一次。從那裏開始,它應該工作並保持靜態參考。

簡單地使用IoC容器並將其註冊爲單例也是一種好的做法。然後,IoC容器可能會爲您處理處置。

是否意味着每次使用using語句訪問緩存時都會創建它?

不應該這樣做。