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");
今日は、構成を再ロードするたびに更新される変数を使用しています。ただし、キャッシュ自体からこの情報を読み取る方がはるかに便利です。
私はこれがすでに答えられていると信じています:
それがあなたが探しているものではない場合は、次のことを考慮してください。
APIは、キャッシュされたアイテムの取得からポリシーを取り戻すことをサポートしていません。任意のオブジェクトをキャッシュできるため、ポリシーをオブジェクトと組み合わせてキャッシュし、後でオブジェクトにアクセスする必要があるときに時間ベースの比較を行うことができます。