Sto facendo uso del nuovo spazio dei nomi di Caching .NET 4.0: System.Runtime.Caching
.Come esaminare i criteri della cache in System.Runtime.Caching.ObjectCache?
Ora, sto solo facendo qualche prototipo/giocherellando con la nuova API, al fine di trovare la soluzione migliore per l'app reale.
In linea con questo, sto cercando di creare una pagina (ASP.NET MVC) che scarica in fondo tutto ciò nella cache, in particolare le seguenti informazioni:
- cache Key Object
- Cache
- politica cache (data di scadenza, ecc)
- dipendenze della cache (se presenti)
Tuttavia, io non riesco a ottenere nulla tranne la chiave/oggetto.
Ecco il codice che sto attualmente in riproduzione con:
public ActionResult Index()
{
var cache = MemoryCache.Default;
// i can get the list of cache keys like this:
var cacheKeys = cache.Select(kvp => kvp.Key).ToList();
// i can also get a strongly-typed "CacheItem" like this:
CacheItem item = cache.GetCacheItem("someKey");
}
avrei sperato classe "CacheItem" esporrebbe l'informazione che desidero (scadenza, dipendenze, ecc - almeno come "getter") .
Ma non è così. Tutto ciò che ha sono proprietà per chiave, valore e nome della regione.
Come posso controllare gli articoli nella cache e sputare le informazioni che ho bisogno?
C'è uno spazio dei nomi/classe che mi manca?
EDIT
Sembra che ci sia una classe ChangeMonitor, ma ancora una volta - questo non dà informazioni di scadenza, permette solo di iscriversi a eventi quando gli elementi della cache vengono rimossi.
Lì deve essere un modo per afferrare gli elementi nella cache e quando scadono.
EDIT 2
Non so se questo dovrebbe essere una domanda separata, ma anche - io sono confuso su ciò che la vita dovrei dare il mio ObjectCache. MSDN dice che non è un singleton e puoi infatti creare più istanze di ObjectCache. Che cosa significa, però, devo usare un singleton completamente bloccato quando si accede all'istanza di ObjectCache?
Sì, ci ho pensato.Forse solo per la prototipazione, lo farò, quindi cambierò il codice alla normalità quando finisco. Comunque, speravo in un programma di monitoraggio della cache leggero sul server live - sembra che non sia possibile. – RPM1984