web-dev-qa-db-ja.com

MemoryCacheのアイテムがいつ期限切れになるかを確認するにはどうすればよいですか?

MemoryCache内のアイテムの有効期限を読み取ることは可能ですか?

.NETを使用していますSystem.Runtime.Caching.MemoryCacheデータベースから再ロードする前に、構成情報を30分間保存します。ステータスページの一部として、特定のキャッシュアイテムが何歳であるか、またはいつ期限切れになるかを示したいと思います。

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

今日は、構成を再ロードするたびに更新される変数を使用しています。ただし、キャッシュ自体からこの情報を読み取る方がはるかに便利です。

9

私はこれがすでに答えられていると信じています:

キャッシュされたアイテムの有効期限を取得する方法は?

それがあなたが探しているものではない場合は、次のことを考慮してください。

APIは、キャッシュされたアイテムの取得からポリシーを取り戻すことをサポートしていません。任意のオブジェクトをキャッシュできるため、ポリシーをオブジェクトと組み合わせてキャッシュし、後でオブジェクトにアクセスする必要があるときに時間ベースの比較を行うことができます。

7
David Pine