.NET 4 ObjectCache - Können Wir Haken In einen "Cache Expired" - Ereignis?

Habe ich ein einfaches Objekt zwischengespeichert werden wie diese:

_myCache.Add(someKey, someObj, policy);

Wo _myCache erklärt wird ObjectCache (aber injiziert via DI als MemoryCache.Default), someObj ist das Objekt, ich bin das hinzufügen, und policy ist ein CacheItemPolicy.

Wenn ich eine CacheItemPolicy wie diese:

var policy = new CacheItemPolicy 
{ 
   Priority = CacheItemPriority.Default, 
   SlidingExpiration = TimeSpan.FromHours(1)
};

Es heißt, es verfällt in 1 Stunde. Cool.

Aber was passieren wird ist, dass unglückliche erste Benutzer nach der Stunde warten müssen für die Treffer.

Gibt es eine Möglichkeit, ich kann den Haken in eine "abgelaufen" - event/delegate und manuell den cache aktualisieren?

Ich sehe, es gibt eine Erwähnung von CacheEntryChangeMonitor aber finde keine meaninful doco/Beispiele auf, wie es zu nutzen in meinem Beispiel.

PS. Ich weiß, dass ich verwenden können CacheItemPriority.NotRemovable - und ablaufen, es manuell, aber das kann ich nicht in mein Aktuelles Beispiel, weil der Cache-Daten ist ein bisschen zu kompliziert (e.g ich brauchen würde, zu "entkräften", wie in 10 verschiedenen stellen in meinem code).

Irgendwelche Ideen?

  • btw, keine Notwendigkeit, Priorität = CacheItemPriority.Standard, da dieser Standard-Wert ist standardmäßig eingestellt 🙂
InformationsquelleAutor RPM1984 | 2011-10-05
Schreibe einen Kommentar