【发布时间】:2010-09-28 18:45:12
【问题描述】:
我想知道是否有办法告诉企业库缓存对象刷新所有已配置的缓存,以便该进程刷新。
即使枚举该进程的所有已配置缓存并手动刷新每个缓存,也可以,但是是否有来自 EntLib.Caching 的 API 方法可以为我提供这些值?
还是我需要自己枚举配置文件?
【问题讨论】:
标签: .net caching enterprise-library caching-application-block
我想知道是否有办法告诉企业库缓存对象刷新所有已配置的缓存,以便该进程刷新。
即使枚举该进程的所有已配置缓存并手动刷新每个缓存,也可以,但是是否有来自 EntLib.Caching 的 API 方法可以为我提供这些值?
还是我需要自己枚举配置文件?
【问题讨论】:
标签: .net caching enterprise-library caching-application-block
这个怎么样:
CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
.GetSection(CacheManagerSettings.SectionName);
conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) {
CacheFactory.GetCacheManager(cache.Name).Flush();
});
【讨论】:
我认为没有办法刷新所有缓存。回收应用程序池就可以了,但这也会导致您的代码需要 JIT 编译。
我们通常将缓存的名称存储在常量中,以避免名称在代码中的多个位置被硬编码,如果您将名称存储在可枚举的数据类型中,您可以一次通过它并刷新它们。
【讨论】: