2012-04-19 4 views
5

프로그래밍 방식으로 항목의 Sitecore 캐시를 지우고 싶습니다. 아래 코드를 실행했습니다. 그 후 삭제 된 ID에 대해 web.GetItem을 수행하려고 시도했지만 여전히 null이 반환됩니다. 어떤 제안?캐시에있는 항목의 프로그래밍 방식으로 Sitecore 캐시 지우기

Database db = new Database("web"); 

     if (ID.IsID(id)) 
     { 
      ID itemID = new ID(id); 
      //clear data cache 
      db.Caches.DataCache.RemoveItemInformation(itemID); 

      //clear item cache 
      db.Caches.ItemCache.RemoveItem(itemID); 

      //clear standard values cache 
      db.Caches.StandardValuesCache.RemoveKeysContaining(itemID.ToString()); 

      //remove path cache 
      db.Caches.PathCache.RemoveKeysContaining(itemID.ToString()); 
     } 

답변

5

는 프리 페치 캐시를 놓친 것처럼 여기 보이는 받으시는 방법이 :

private Cache GetPrefetchCache(Database database) 
    { 
     foreach (var cache in global::Sitecore.Caching.CacheManager.GetAllCaches()) 
     { 
      if (cache.Name.Contains(string.Format("Prefetch data({0})", database.Name))) 
      { 
       return cache; 
      } 
     } 

또한 html로 캐시 :

private void ClearAllHtmlCaches() 
{ 
    foreach (var info in Factory.GetSiteInfoList()) 
    { 
     info.HtmlCache.Clear(); 
    } 
} 
관련 문제