Comment vérifier si un élément dans MemoryCache expirera?
Est-il possible de lire l'heure d'expiration d'un élément dans MemoryCache?
Je suis en utilisant le .NET System.Runtime.Caching.MemoryCache
pour stocker mes informations de configuration pour 30 min avant que je le recharger à partir de la base de données. Dans le cadre d'une page d'état, je voudrais montrer à quel âge un cache spécifique de l'élément est ou la date d'expiration.
object config = LoadSomeStuffFromDatabase();
CacheItemPolicy cachePolicy = new CacheItemPolicy() { AbsoluteExpiration = DateTime.Now.AddMinutes(30) };
Cache.Add("MyConfigKey", config, cachePolicy);
//And now I want to do something like this :-)
DateTime dt = Cache.SomeMagicMethod("MyConfigKey");
Aujourd'hui, je suis en utilisant une variable qui est mis à jour chaque fois que je recharge la configuration. Mais il serait beaucoup plus agréable de lire ces informations à partir du cache lui-même.
- Une alternative serait de cache de votre date d'insertion le long de avec votre objet, de cette façon, lorsque vous chercher plus tard, vous saurez quand vous avez la sauver, et vous pouvez calculer combien de temps ça va prendre pour expirer
Vous devez vous connecter pour publier un commentaire.
Je crois que cela a déjà été répondu:
Comment obtenir une date d'expiration pour un élément de mise en cache?
Si ce n'est pas ce que vous cherchez, procédez comme suit:
L'API ne les supporte pas obtenir la politique de retour de la récupération de l'élément de mise en cache. Puisque vous pouvez mettre n'importe quel objet, vous pouvez le cache de la politique en collaboration avec l'objet et faire des comparaisons dans le temps lorsque vous avez besoin d'accéder ultérieurement l'objet.