我正在使用新的.NET 4.0高速緩存命名空間:System.Runtime.Caching
。如何檢查System.Runtime.Caching.ObjectCache內的緩存策略?
現在,我只是在做一些原型/新API擺弄,以制定出最適合用於真正的應用程序。
與那行,我試圖創建一個網頁(ASP.NET MVC),基本上轉儲出一切都在高速緩存中,特別是以下信息:
- 緩存鍵
- 緩存對象
- 緩存策略(過期日期等)
- 緩存依賴(如果有的話)
但是,我似乎無法得到任何東西除了鍵/對象。
這裏是我目前正在玩代碼:
public ActionResult Index()
{
var cache = MemoryCache.Default;
// i can get the list of cache keys like this:
var cacheKeys = cache.Select(kvp => kvp.Key).ToList();
// i can also get a strongly-typed "CacheItem" like this:
CacheItem item = cache.GetCacheItem("someKey");
}
我本來希望「CacheItem」類將暴露我所需要的信息(有效期,依賴關係等 - 至少在「干將」) 。
但事實並非如此。它所具有的是關鍵,值和區域名稱的屬性。
我怎麼能檢查在緩存中的項目和吐出我所需要的信息?
是否有一個命名空間/類我失蹤?
編輯
貌似有一個ChangeMonitor類,但再次 - 這並沒有給過期的信息,它只是允許時被刪除緩存項,您可以訂閱的事件。
There 必須是一種只抓取緩存中的項目以及何時到期的方法。
EDIT 2
不知道這應該是一個單獨的問題,也是 - 我很困惑,什麼有生之年,我應該給我的ObjectCache。 MSDN表示這不是一個單例,並且實際上可以創建多個ObjectCache實例。這是什麼意思,但我必須在訪問ObjectCache實例時使用完全鎖定的單例?
是的,我想過這個。也許只是爲了原型,我會這樣做 - 然後在im完成時將代碼改回正常。儘管如此,我還是希望在現場服務器上使用輕量級緩存監控程序 - 聽起來像是不可能的。 – RPM1984 2011-02-09 21:17:04