protected override object Invoke(MethodInfo targetMethod, object[] args) { if (_proxyFactory.TryGetAop(targetMethod, out DynamicAttribute aopAttribute)) { var task = aopAttribute.ExecuteAsync(targetMethod.GetReflector(), _instance, args); var awaiter = task.ConfigureAwait(true).GetAwaiter(); var result = awaiter.GetResult(); return(result); } return(targetMethod.Invoke(_instance, args)); }
protected override object Invoke(MethodInfo targetMethod, object[] args) { if (_proxyFactory.TryGetAop(targetMethod, out DynamicAttribute aopAttribute)) { var task = aopAttribute.ExecuteAsync(targetMethod.GetReflector(), _instance, args); var awaiter = task.ConfigureAwait(true).GetAwaiter(); var result = awaiter.GetResult(); #if DEBUG if (!(aopAttribute.IsBefore && aopAttribute.IsAfter)) { aopAttribute.IsBefore = false; aopAttribute.IsAfter = false; throw new Exception($"Execute Error"); } #endif return(result); } return(targetMethod.Invoke(_instance, args)); }