C# 这是什么原因造成的?Sharepoint缓存

C# 这是什么原因造成的?Sharepoint缓存,c#,sharepoint,caching,sharepoint-2007,C#,Sharepoint,Caching,Sharepoint 2007,我在教程中实现了这段代码 我正在缓存一个SPItem,我注意到我遇到了这个问题。我把它放进痰盂里,马上拿出来 我从缓存中得到的SPItem很好,可以使用。然而,在几次突然将该项抓取出来之后,每个属性都会抛出一个“null引用异常” 什么会导致属性抛出“空引用异常”。我的意思是,这些甚至像字符串属性,我不希望看到这样的异常 谢谢听起来并不是属性本身引发了NullReferenceException,而是试图从类中访问属性的行为。我认为你提到的SPItem不再有效。无论您使用什么机制来缓存它,它都会

我在教程中实现了这段代码

我正在缓存一个SPItem,我注意到我遇到了这个问题。我把它放进痰盂里,马上拿出来

我从缓存中得到的SPItem很好,可以使用。然而,在几次突然将该项抓取出来之后,每个属性都会抛出一个“null引用异常”

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


谢谢

听起来并不是属性本身引发了
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
SPItem item=Cache.GetObject(“MySPItem”);// 这是正常的行为。
当您在
absoluteExpiration
参数中指定时,缓存项将从缓存中删除。 如果指定了
slidingExpiration
,则该对象将在上次访问后的几分钟内过期并从缓存中删除,时间与您在Insert或Add方法调用中指定的时间相同

什么时候用哪个?阅读 所以调整这些参数的值


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

。但我不明白它为什么会丢失引用。@ukhardy-我设置了System.Web.Caching.Cache.NoAbsoluteExpiration,这不应该阻止它吗?如果我没有看错教程,我认为它的设计目的是在文件或某些内容发生更改时才释放缓存。当得到空值时,请检查(details.LastModified