Пример #1
0
        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));
        }