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(); 
    });