Asp.net-Mvc-2
如何檢查記憶體(System.Web.Cache)中是否存在項目?
你好,
要檢查密鑰是否已存在於記憶體中,我應該能夠執行以下操作:
if(Cache["MyKey"] != null)然而這不起作用?如果我從 Cache 類創建一個實例,我將能夠以這種方式獲取對象:
cache.Get("MyKey") or cache["MyKey"]但即使我像這樣檢查 null :
if(cache["MyKey"] != null)它會拋出 NullRefException 嗎?
我究竟做錯了什麼?
編輯1:
這就是我實例化記憶體的方式
private Cache cache { get { if (_cache == null) _cache = new Cache(); return _cache; } }
檢查空值是如何測試某個鍵的對像是否在記憶體中。所以,
if(Cache["MyKey"] != null)是正確的。
但是,您不應實例化新的 Cache 對象。你可以
System.Web.HttpContext.Current.Cache改用。這是 Cache 的實例,位於應用程序域中。來自MSDN:
每個應用程序域創建一個此類的實例,只要應用程序域保持活動狀態,它就保持有效。有關此類實例的資訊可通過 HttpContext 對象的 Cache 屬性或 Page 對象的 Cache 屬性獲得。