【问题标题】:How to flush all caches in process for EntLib Caching如何为 EntLib 缓存刷新进程中的所有缓存
【发布时间】:2010-09-28 18:45:12
【问题描述】:

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

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

还是我需要自己枚举配置文件?

【问题讨论】:

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


    【解决方案1】:

    这个怎么样:

    CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
        .GetSection(CacheManagerSettings.SectionName);
    
    conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) { 
            CacheFactory.GetCacheManager(cache.Name).Flush();
        });
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        相关资源
        最近更新 更多