2008-12-29 103 views
2

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

即使枚举该过程的所有配置的缓存,并手动刷新每一个,没问题,但EntLib.Caching中有API方法会给我那些值吗?

或者我需要通过自己的配置文件枚举?

回答

0

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

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

1

如何:

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

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