Enterprise Library Caching オブジェクトに、そのプロセスがフラッシュするすべての構成済みキャッシュをフラッシュするように指示する方法があるかどうかを知りたいです。
そのプロセス用に構成されたすべてのキャッシュを列挙し、それぞれを手動でフラッシュしても問題ありませんが、これらの値を取得できる EntLib.Caching の API メソッドはありますか?
または、構成ファイルを自分で列挙する必要がありますか?
Enterprise Library Caching オブジェクトに、そのプロセスがフラッシュするすべての構成済みキャッシュをフラッシュするように指示する方法があるかどうかを知りたいです。
そのプロセス用に構成されたすべてのキャッシュを列挙し、それぞれを手動でフラッシュしても問題ありませんが、これらの値を取得できる EntLib.Caching の API メソッドはありますか?
または、構成ファイルを自分で列挙する必要がありますか?
これはどう:
CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
.GetSection(CacheManagerSettings.SectionName);
conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) {
CacheFactory.GetCacheManager(cache.Name).Flush();
});
すべてのキャッシュをフラッシュする方法はないと思います。アプリケーション プールを再利用することで解決できますが、コードで JIT コンパイルが必要になることもあります。
通常、キャッシュの名前は定数に格納されます。名前がコード内の複数の場所にハードコーディングされるのを避けるためです。名前を列挙可能なデータ型に格納する場合は、それを調べて一度に 1 つずつフラッシュすることができます。