Comment inspecter les stratégies de cache dans System.Runtime.Caching.ObjectCache?

Je suis en train de faire l'utilisation de la nouvelle .NET 4.0 mise en Cache de noms: System.Runtime.Caching.

Maintenant, je suis juste à faire des prototypes, de jongler avec la nouvelle API, afin de trouver la meilleure solution pour l'application réelle.

En ligne avec cela, je suis en train de créer une page (ASP.NET MVC) qui, fondamentalement, se déverse tout dans le cache, en particulier les informations suivantes:

  • Clé De Cache
  • Objet Cache
  • Politique de Cache (date d'expiration, etc)
  • Les Dépendances de Cache (le cas échéant)

Cependant, je n'arrive pas à obtenir quoi que ce soit à l'exception de la touche/objet.

Voici le code que j'suis en train de jouer avec:

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");

}

J'aurais espéré le "CacheItem" classe exposerait les renseignements dont j'ai besoin (date d'expiration, dépendances, etc - au moins comme des "getters").

Mais il ne le fait pas. Tout ce qu'il a est les propriétés de la clé, la valeur et le nom de la région.

Comment inspecter les éléments dans le cache et crache les renseignements dont j'ai besoin?

Est-il un espace de noms/classe je suis absent?

MODIFIER

Ressemble à il ya un ChangeMonitor de classe, mais encore une fois - ce n'est pas donner les infos d'expiration, il permet tout simplement de vous abonner à des événements lorsque les éléments du cache sont supprimés.

Il doit être un moyen de simplement saisir les éléments dans le cache, et quand ils expirent.

EDIT 2

Ne sais pas si cela doit être une autre question, mais aussi - je suis confus quant à ce que la durée de vie je dois donner mon ObjectCache. MSDN dit que c'est pas un singleton, et vous pouvez en fait créer plusieurs ObjectCache instances. Ce que cela signifie si, j'ai utilisé verrouillé singleton lors de l'accès à la ObjectCache exemple?

source d'informationauteur RPM1984