会导致什么? Sharepoint缓存

时间:2011-04-05 15:49:19

标签: c# sharepoint caching sharepoint-2007

我从 this 教程实现了这段代码。

我正在缓存一个SPItem,我注意到我遇到了这个问题。我坚持使用SPItem并立即将其带走。

我从缓存中获取的SPItem很好且可用。然而,在几次突然抓住这个项目之后,每一个属性都抛出一个“空引用异常”。

什么会导致属性抛出“空引用异常”。我的意思是这些甚至像字符串属性,我不希望看到这样的例外。

谢谢

2 个答案:

答案 0 :(得分:0)

听起来好像不是属性本身正在抛出NullReferenceException,而是尝试访问你班级的属性。我认为您对SPItem的引用不再有效。无论你使用什么机制来缓存它都是返回null而不是SPItem的实例,因此NullReferenceException

SPItem item = Cache.GetObject("MySPItem"); // <-- this is probably returning null
item.Name; // since item is null, trying to access the Name property would throw a NullReferenceException

答案 1 :(得分:0)

这是正常行为。 在absoluteExpiration参数中指定的那时,缓存项目将从缓存中删除。 如果您指定了slidingExpiration,则对象将在上次访问后的几分钟内过期并从缓存中删除,如您在Insert或Add方法调用中指定的那样。

哪一个使用的时候?阅读here。 所以调整这些参数的值。

从缓存中检索对象时始终执行空检查,并相应地更新/刷新过时缓存。