public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { if (IsMethodCachable(input)) { string regionName = _cacheRegionNameGenerator.CreateRegionName( string.Format("{0}.{1}", input.Target.GetType().FullName, input.MethodBase.Name)); string cacheKey = _cacheKeyGenerator.CreateCacheKey(input.Inputs); ICacheRegion cacheRegion = _cacheProvider.GetRegion(regionName); return(cacheRegion.GetOrAdd(cacheKey, () => getNext.Invoke().Invoke(input, getNext) )); } return(getNext() .Invoke(input, getNext)); }
public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { Console.WriteLine($"{DateTime.Now}执行了{input.MethodBase.Name}方法"); return(getNext.Invoke().Invoke(input, getNext)); }