开发者

Centralized way to empty the Cache object in asp.net

I have to maintain an old asp.net application, and need to disable all access to the Cache object for debugging purposes. There are hundreds of pages that use the structure:

if (Cache["myobje开发者_如何学JAVAct"] != null)
{
   //get data from the cache
   //...
}
else
{
   //go to the DB, load the cache and send it to the client
}

I know I should refactor this code but, in the meantime, do you know of any simple and centralized way to empty (or disable) the Cache object?


Not sure if it will be of any help, but you can play with cache settings and set, say, privateBytesLimit to 1 and privateBytesPollTime to 00:00:01. My guess is that ASP.NET should basically remove all entries as soon as they're added. However, this might not be the case.


I haven't used it but this helper might give you what you're after.


If you just want to clear the cache once, you can use this:

   foreach ( System.Collections.DictionaryEntry entry in HttpContext.Current.Cache )
        HttpContext.Current.Cache.Remove( entry.Key as String );

Otherwise @Anton Gogolev solution looks good to prevent new entries.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜