public override void RefreshAll() { //all property type cache ApplicationContext.Current.ApplicationCache.ClearCacheByKeySearch(CacheKeys.PropertyTypeCacheKey); //all content type property cache ApplicationContext.Current.ApplicationCache.ClearCacheByKeySearch(CacheKeys.ContentTypePropertiesCacheKey); //all content type cache ApplicationContext.Current.ApplicationCache.ClearCacheByKeySearch(CacheKeys.ContentTypeCacheKey); //clear static object cache global::umbraco.cms.businesslogic.ContentType.RemoveAllDataTypeCache(); PublishedContentHelper.ClearPropertyTypeCache(); base.RefreshAll(); }
/// <summary> /// Clears cache for an individual IContentTypeBase object /// </summary> /// <param name="payload"></param> /// <remarks> /// See notes for the other overloaded ClearContentTypeCache for /// full details on clearing cache. /// </remarks> /// <returns> /// Return true if the alias of the content type changed /// </returns> private static void ClearContentTypeCache(JsonPayload payload) { //clears the cache for each property type associated with the content type foreach (var pid in payload.PropertyTypeIds) { ApplicationContext.Current.ApplicationCache.ClearCacheItem(CacheKeys.PropertyTypeCacheKey + pid); } //clears the cache associated with the Content type itself ApplicationContext.Current.ApplicationCache.ClearCacheItem(string.Format("{0}{1}", CacheKeys.ContentTypeCacheKey, payload.Id)); //clears the cache associated with the content type properties collection ApplicationContext.Current.ApplicationCache.ClearCacheItem(CacheKeys.ContentTypePropertiesCacheKey + payload.Id); //clears the dictionary object cache of the legacy ContentType global::umbraco.cms.businesslogic.ContentType.RemoveFromDataTypeCache(payload.Alias); PublishedContentHelper.ClearPropertyTypeCache(); //need to recursively clear the cache for each child content type foreach (var descendant in payload.DescendantPayloads) { ClearContentTypeCache(descendant); } }