私は新しい.NET 4.0キャッシングネームスペース:System.Runtime.Caching
を使用しています。System.Runtime.Caching.ObjectCache内のキャッシュポリシーを調べる方法
今、私は実際のアプリケーションに最適なものを見つけ出すために、新しいAPIを使ってプロトタイプ/手品をしています。それに沿って
、私は基本的には、キャッシュ内のすべてのもの、特に以下の情報アウトダンプページ(ASP.NET MVC)を作成しようとしています:
- キャッシュキー
- キャッシュオブジェクトを
- キャッシュポリシー(有効期限など)
- キャッシュの依存関係(もしあれば)
しかし、私は何かを得るように見えることはできませんキー/オブジェクトを除きます。
ここで私は、現在で遊んでいるコードです:私は「CacheItem」クラスは、私は必要な情報(有効期限、依存関係など - 少なくとも「ゲッター」など)を公開することを望んだはず
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");
}
は、 。
しかし、そうではありません。それが持つものは、キー、値、地域名のプロパティです。
キャッシュ内のアイテムを調べて、必要な情報を吐き出すにはどうすればよいですか?
名前空間/クラスがありますか? ChangeMonitorクラスがあるよう
EDIT
は見えるが、再び - これは、有効期限の情報を与えるものではありません、それだけでキャッシュ項目が削除されたときのイベントをサブスクライブすることができます。
ここでは、キャッシュ内のアイテムを取得する方法と、期限が切れたときにする必要があります。
EDIT 2
が、これは別々の問題であるべきかどうかを知るだけでなく、しないでください - 私はどのような生涯私は私のObjectCacheを与えるべきへと困惑しています。 MSDNによると、これはシングルトンではなく、実際には複数のObjectCacheインスタンスを作成できます。それはどういう意味ですか、ObjectCacheインスタンスにアクセスするときに完全にロックされたシングルトンを使用する必要がありますか?
私はこれについて考えました。たぶんプロトタイプのために、私はこれを行います - そして、終了したらコードを正常に戻してください。それでも、私はライブサーバー上の軽量キャッシュモニタープログラムを望んでいました - それは可能ではないように思えます。 – RPM1984