Что будет причиной этого? Sharepoint кеширование - PullRequest
0 голосов
/ 05 апреля 2011

Я реализовал этот код из этого учебника.

Я кеширую SPItem и заметил, что столкнулся с этой проблемой. Я втыкаю в SPItem и сразу вынимаю его.

SPItem, который я получаю из кеша, хорош и полезен. Однако после нескольких попыток внезапного извлечения этого элемента каждое свойство выдает «исключение нулевой ссылки».

Что может привести к тому, что свойства выдают "исключения нулевой ссылки". Я имею в виду, что они даже похожи на строковые свойства, где я не ожидал бы увидеть такое исключение.

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Это нормальное поведение.Кэшированный элемент удаляется из кэша в то время, которое вы указали в параметре absoluteExpiration.Если вы указали slidingExpiration, объект истечет и будет удален из кэша через столько минут после последнего обращения к нему, как вы указали в вызове метода Insert или Add.

Какой из них использовать когда?Читайте здесь .Так что настройте значения этих параметров.

Всегда выполняйте нулевые проверки при извлечении объектов из кеша и соответственно обновляйте / обновляйте устаревший кеш.

0 голосов
/ 05 апреля 2011

Похоже, что не само свойство выбрасывает NullReferenceException, это попытка получить доступ к свойствам вашего класса. Я думаю, что ваша ссылка на SPItem больше не действительна. Какой бы механизм вы ни использовали для кеширования, он возвращает нуль вместо экземпляра 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...