如何刷新EntLib缓存的进程中的所有缓存

时间:2008-12-29 23:14:20

标签: .net caching enterprise-library caching-application-block

我想知道是否有办法告诉企业库缓存对象刷新该进程的所有已配置缓存以进行刷新。

即使枚举该进程的所有已配置缓存,并手动刷新每个缓存,也没关系,但EntLib.Caching中是否有一个API方法可以为我提供这些值?

或者我是否需要自己修改配置文件?

2 个答案:

答案 0 :(得分:1)

这个怎么样:

CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
    .GetSection(CacheManagerSettings.SectionName);

conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) { 
        CacheFactory.GetCacheManager(cache.Name).Flush();
    });

答案 1 :(得分:0)

我认为没有办法刷新所有缓存。回收应用程序池会这样做,但这也会导致您的代码需要JIT编译。

我们通常将缓存的名称存储在常量中,以避免名称在代码中的几个位置被硬编码,如果将名称存储在可枚举的数据类型中,您可以直接通过它并一次刷新一个。