首页 新闻 赞助 找找看

cachehelper调用

0
[已解决问题] 解决于 2010-12-06 22:13

cachehelper调用时总是出错时为什么,提示是:System.NullReferenceException: 未将对象引用设置到对象的实例。郁闷了很久了.
    public static Cache cache = new Cache();

    public static void Insert(string key, object obj, double Minutes)
    {
        if (obj != null)
        {
            cache.Insert(key, obj, null, DateTime.Now.AddMinutes(Minutes), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
        }
    }

DataSet ds;
        if (Cache["Rss"] == null)
        {
            string sqlStr = "select top 50 co.id,co.title,co.time,co.content,ca.category from [content] co,[category] ca where co.cateid=ca.id order by co.id desc";
            ds = SQLHelper.Query(sqlStr);
            CacheHelper.CacheInsertAddMinutes("Rss", ds, 10);
        }

错误是:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

艾克赛尔的主页 艾克赛尔 | 初学一级 | 园豆:4
提问于:2010-11-28 12:00
< >
分享
最佳答案
0

你的CacheHelper应该是封装的时候System.Web.Cache 吧,see http://msdn.microsoft.com/zh-cn/library/05kd8d77(v=VS.80).aspx

看NullReferenceException不是通过Insert抛出的,你需要现在到抛出异常的源头,没代码也不知道怎么回事。看看是不是CacheHelper抛出的呢:)

LittlePeng | 老鸟四级 |园豆:3445 | 2010-11-28 16:39
谢谢!已经解决了,就是不知道为什么,我换了cache的实例方式,用private static System.Web.Caching.Cache cache = System.Web.HttpRuntime.Cache;替换以前的就可以了。
艾克赛尔 | 园豆:4 (初学一级) | 2010-11-28 16:52
我看了下System.Web.Caching.Cache的实现,发现里面有个cacheInternal必须初始化才能使用,但操作都是internal的。我汗,这个类给出了构造却没法让人使用····当然用反射可以初始化完成···。 不过说到底还是不用自己实例化这个类型,msdn也不建议这样,asp.net 已经给出了实例,用就行了
LittlePeng | 园豆:3445 (老鸟四级) | 2010-11-28 19:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册