开发者

How to check if item exists in Cache (System.Web.Cache)?

开发者 https://www.devze.com 2023-02-08 12:12 出处:网络
Hi, To check if the key already exists in cache I shoulde be able to do the following : if(Cache[\"MyKey\"] != null)

Hi,

To check if the key already exists in cache I shoulde be able to do the following :

if(Cache["MyKey"] != null)

This does however not work? If I create an instance from the Cache class i will be able to get the object this way :

cache.Get("MyKey") or cache["MyKey"]

But even if I check for null like this :

if(cache["MyKey"] != null)

It will throw an NullRefException?

What am I doing wrong?

Edit1 :

This is how I instansiate the cache

private Cache cache
        {
            get {开发者_Python百科
                if (_cache == null)
                    _cache = new Cache();
                return _cache; }
        }


Checking for a null value is how to test whether an object for a certain key is in the Cache. Therefore,

if(Cache["MyKey"] != null)

is correct.

However, you should not instantiate a new Cache object. You may use System.Web.HttpContext.Current.Cache instead. This is the instance of the Cache and lives in the application domain.

From MSDN:

One instance of this class is created per application domain, and it remains valid as long as the application domain remains active. Information about an instance of this class is available through the Cache property of the HttpContext object or the Cache property of the Page object.


You should be checking if the cache is not Null & post that check if the key exists or not (by using .Contains method).

if (myCache != null && myCache.Contains("keyName") && myCache.Get("keyName") != null)
        {
            myDS = (DataSet)myCache.Get("keyName");
        }
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号