我想知道是否有办法告诉企业库缓存对象刷新所有已配置的缓存以使该进程刷新。
即使枚举该进程的所有已配置缓存,并手动刷新每个缓存,也可以,但是是否有来自 EntLib.Caching 的 API 方法可以为我提供这些值?
还是我需要自己枚举配置文件?
我想知道是否有办法告诉企业库缓存对象刷新所有已配置的缓存以使该进程刷新。
即使枚举该进程的所有已配置缓存,并手动刷新每个缓存,也可以,但是是否有来自 EntLib.Caching 的 API 方法可以为我提供这些值?
还是我需要自己枚举配置文件?
这个怎么样:
CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
.GetSection(CacheManagerSettings.SectionName);
conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) {
CacheFactory.GetCacheManager(cache.Name).Flush();
});
我认为没有办法刷新所有缓存。回收应用程序池可以做到这一点,但这也会导致您的代码需要 JIT 编译。
我们通常将缓存的名称存储在常量中,以避免名称在代码中的多个位置被硬编码,如果您将名称存储在可枚举的数据类型中,您可以一次通过它并刷新它们。