.NET 4 ObjectCache - Можем ли мы подключиться к событию «Срок действия кэша истек»?
У меня есть простой объект, который кэшируется следующим образом:
_myCache.Add(someKey, someObj, policy);
где_myCache
объявлен какObjectCache
(но вводится через DI какMemoryCache.Default
),someObj
это объект, который я добавляю, иpolicy
этоCacheItemPolicy
.
Если у меня естьCacheItemPolicy
нравится:
var policy = new CacheItemPolicy
{
Priority = CacheItemPriority.Default,
SlidingExpiration = TimeSpan.FromHours(1)
};
Это означает, что истекает через 1 час. Здорово.
Но что случится, так это то, что незадачливому первому пользователю через час придется ждать попадания.
Есть ли способ, которым я могу подключиться к «просроченному» событию / делегату и вручную обновить кеш?
Я вижу, что есть упоминание оCacheEntryChangeMonitor
но я не могу найти никаких значимых документов / примеров о том, как использовать его в моем примере.
PS. Я знаю, что могу использоватьCacheItemPriority.NotRemovable
и срок его действия истекает вручную, но я не могу этого сделать в моем текущем примере, потому что кэшированные данные слишком сложны (например, мне нужно «сделать недействительными» примерно в 10 разных местах в моем коде).
Есть идеи?