Как очистить все кэши в процессе для EntLib Caching - PullRequest
2 голосов
/ 30 декабря 2008

Хотелось бы узнать, есть ли способ указать объектам кэширования библиотеки предприятия сбрасывать все настроенные кэши для сброса этого процесса.

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

Или мне нужно самому перечислить через файл конфигурации?

Ответы [ 2 ]

1 голос
/ 24 августа 2012

Как насчет этого:

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

conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache) { 
        CacheFactory.GetCacheManager(cache.Name).Flush();
    });
0 голосов
/ 26 июня 2010

Не думаю, что есть способ очистить все кэши. Рециркуляция пула приложений сделает это, но это также заставит ваш код требовать JIT-компиляции.

Обычно мы храним имена кешей в константах, чтобы избежать жесткого кодирования имени в нескольких местах кода, если вы храните имена в перечисляемом типе данных, вы можете просто просмотреть их и очистить их по одному за раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...