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
Vous devez vous connecter pour publier un commentaire.
Il ne me semble pas qu'il y a un moyen de récupérer les CacheItemPolicy une fois qu'il a été ajouté au cache de la collection.
Le meilleur moyen de contourner cela est peux penser à est de mettre en cache les objets de stratégie avec l'élément que vous souhaitez mettre en cache, mais juste en ajoutant "Politique" au nom de la clé de sorte que vous pouvez récupérer une version ultérieure de la politique. De toute évidence, cela suppose que vous avez plus de contrôle effectivement l'ajout de l'élément dans le cache en premier lieu. L'exemple ci-dessous: