首页 新闻 会员 周边 捐助

C# .net的缓存好像是 有问题 请教下好不 ,怎么回事呢

0
悬赏园豆:80 [已解决问题] 解决于 2010-10-03 11:57

 private static object GetInstance(string CacheKey)
        {
            object objType = DataCache.GetCache(CacheKey);
            if (objType ==null)
            {
                try
                {
                    objType = Assembly.Load(DALFactory._path).CreateInstance(CacheKey);
                    DataCache.SetCache(CacheKey, objType);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return objType;
        }
     中的objType = Assembly.Load(DALFactory._path).CreateInstance(CacheKey);

objType怎么为null 啊 DALFactory._path和CacheKey都有值 怎么Assembly.Load没有用啊

问题补充: 会不会是路径出了问题啊 ? 找不出来了就 ......生成也不报错 ,多少给点儿建议好啊 ,今天天气这么好 高手们都去哪玩儿了 --! 我的问题还没解决呢..................
程海的主页 程海 | 初学一级 | 园豆:11
提问于:2010-09-28 10:02
< >
分享
最佳答案
0

缓存中没有的时候,它当然就是null了。你的键虽然不为空,但是缓存中并由有对应这个键的数据,它返回肯定是null了。

收获园豆:45
邢少 | 专家六级 |园豆:10926 | 2010-09-28 17:25
那该怎么能啊 大概程序那错了
程海 | 园豆:11 (初学一级) | 2010-09-29 08:46
断点调试一下吧
邢少 | 园豆:10926 (专家六级) | 2010-09-29 14:21
试过了调试不行啊 看来只能跳过去了
程海 | 园豆:11 (初学一级) | 2010-09-29 15:28
调试怎么不行?,调试就是要看一下在你说的无效的情况下,那个缓存中是否为null。是的话。说明你插入缓存的代码有问题。不为null就查看一下有什么别的地方致使缓存失效
邢少 | 园豆:10926 (专家六级) | 2010-09-29 18:04
嗯,调试后 有点着落了 需要点时间
程海 | 园豆:11 (初学一级) | 2010-09-29 19:21
@程海:.net平台下的调试技术也是非常重要的一个编程技能。仅仅使用断点也只是用了一点皮毛。
邢少 | 园豆:10926 (专家六级) | 2010-09-30 08:43
找出来了 类继承是 多了个字母 - -!
程海 | 园豆:11 (初学一级) | 2010-10-03 11:56
其他回答(1)
0

  分析1, 不能怀疑的是,程序不会说慌,既然为null就一定是键所对应的值为空

        2,从两头分析,一个是值一个是键,值为空要不就是本身这个值查不到,或者压根就被=null了

            从键来说,要不就是键名写错了,要不就是键名不唯一被覆盖了!

         3,既然是缓存,缓存就是存在内存中的一个零时的区域里,我们都知道缓存可以被清空

             查一下是否是哪里有清空缓存的语句还是怎么! 

             

收获园豆:35
Near_wen | 园豆:11 (初学一级) | 2010-09-29 10:43
谢谢我的好好检查了
支持(0) 反对(0) 程海 | 园豆:11 (初学一级) | 2010-09-29 10:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册