Значение, сохраняемое в сеансе, зависит от значения в кэше HttpRuntime - PullRequest
1 голос
/ 04 августа 2011

У меня есть данные, общие для всех пользователей, которые хранятся в HttpRuntime.Cache.

Тогда у меня есть некоторые пользовательские данные, хранящиеся в сеансе.

HttpRuntime.Cache имеет механизм CacheDependency, который можно использовать для определения отношений между элементами в кэше.

Что бы вы использовали для обработки зависимости между Session и Runtime Cache?

В дополнение к CacheDependencies есть также CacheItemRemovedCallback.Я мог бы удалить определенные значения из каждого сеанса во время этого обратного вызова, если это даже возможно.

1 Ответ

2 голосов
/ 04 августа 2011

Зависимость кеша работает по-другому, то есть когда кеш зависит от чего-то другого, а не когда что-то зависит от кеша.

Использование CacheItemRemovedCallback для обновления элементов в объекте Session невозможно. Обратный вызов не вызывается в области действия определенного пользователя, поэтому вы не можете получить доступ к объекту Session. Вам придется хранить данные где-то еще, чтобы вы могли получить доступ к данным для всех пользователей, поскольку данные, зависящие от элемента, удаленного из кэша, могут принадлежать любому пользователю.

...