Я хотел бы знать, есть ли способ указать объектам кэширования корпоративной библиотеки очистить все настроенные кеши для этого процесса.
Даже перечисление всех настроенных кешей для этого процесса и ручная очистка каждого из них - это нормально, но есть ли метод API из EntLib.Caching, который даст мне эти значения?
Или мне нужно самому пройти через конфигурационный файл?





Не думаю, что есть способ сбросить все кеши. Переработка пула приложений сделает это, но это также приведет к тому, что вашему коду потребуется JIT-компиляция.
Обычно мы храним имена кэшей в константах, чтобы имя не было жестко закодировано в нескольких местах кода. Если вы сохраняете имена в перечислимом типе данных, вы можете просто просмотреть его и сбросить их по одному.
Как насчет этого:
CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
.GetSection(CacheManagerSettings.SectionName);
conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) {
CacheFactory.GetCacheManager(cache.Name).Flush();
});