// NOTE: This section looks horrible - it is, but it's how .Net natively supports Function and Action classes - up to 16 generic parameters. // Maybe one day we won't need these. private static void DeleteCachedData_Proxy <TResult>(this ICacheProvider cacheProvider, ICacheSettings settings, String methodType, String methodName, MethodDelegate <TResult> @delegate, params Object[] args) { // Default cache settings settings = settings ?? cacheProvider.DefaultSettings; #region Build CacheKey String cacheKey = settings.CacheKeyOverride; if (String.IsNullOrWhiteSpace(cacheKey)) { cacheKey = cacheProvider.BuildCacheKey(String.Format("{0}.{1}", methodType, methodName), args); } #endregion settings.CacheKeyOverride = cacheKey; cacheProvider.DeleteCachedData <TResult>(settings, @delegate, args); }