.NET 4 ObjectCache - ¿Podemos conectarnos a un evento "Cache expired"?
Tengo un objeto simple que se almacena en caché de esta manera:
_myCache.Add(someKey, someObj, policy);
Dónde_myCache
se declara comoObjectCache
(pero inyectado a través de DI comoMemoryCache.Default
),someObj
es el objeto que estoy agregando, ypolicy
es unCacheItemPolicy
.
Si tengo unCacheItemPolicy
Me gusta esto
var policy = new CacheItemPolicy
{
Priority = CacheItemPriority.Default,
SlidingExpiration = TimeSpan.FromHours(1)
};
Significa que caducará en 1 hora. Guay
Pero lo que sucederá es que el primer usuario desafortunado después de la hora tendrá que esperar el golpe.
¿Hay alguna forma de conectarme a un evento / delegado "caducado" y actualizar manualmente el caché?
Veo que hay una mención deCacheEntryChangeMonitor
pero no puedo encontrar ningún documento / ejemplo significativo sobre cómo utilizarlo en mi ejemplo.
PD. Sé que puedo usarCacheItemPriority.NotRemovable
y caducarlo manualmente, pero no puedo hacerlo en mi ejemplo actual porque los datos en caché son demasiado complicados (por ejemplo, necesitaría "invalidar" en 10 lugares diferentes de mi código).
¿Algunas ideas