Ban*_*hee 12 system.web.caching asp.net-mvc-2
嗨,
要检查密钥是否已存在于缓存中,我应该能够执行以下操作:
if(Cache["MyKey"] != null)
Run Code Online (Sandbox Code Playgroud)
但这不起作用?如果我从Cache类创建一个实例,我将能够以这种方式获取对象:
cache.Get("MyKey") or cache["MyKey"]
Run Code Online (Sandbox Code Playgroud)
但即使我像这样检查null:
if(cache["MyKey"] != null)
Run Code Online (Sandbox Code Playgroud)
它会抛出一个NullRefException?
我究竟做错了什么?
编辑1:
这就是我实现缓存的方式
private Cache cache
{
get {
if (_cache == null)
_cache = new Cache();
return _cache; }
}
Run Code Online (Sandbox Code Playgroud)
mar*_*pet 28
检查空值是如何测试某个键的对象是否在Cache中.因此,
if(Cache["MyKey"] != null)
Run Code Online (Sandbox Code Playgroud)
是正确的.
但是,您不应该实例化新的Cache对象.你可以System.Web.HttpContext.Current.Cache
改用.这是Cache的实例并且位于应用程序域中.
来自MSDN:
每个应用程序域创建一个此类的实例,只要应用程序域保持活动状态,它就仍然有效.有关此类实例的信息可通过HttpContext对象的Cache属性或Page对象的Cache属性获得.
归档时间: |
|
查看次数: |
18590 次 |
最近记录: |