Exemple #1
0
        public static Task <T> ExecuteAsyncMethod <T>(this IMethodExecutable executable)
        {
            var task = (Task)executable.ExecuteMethod();
            var tcs  = new TaskCompletionSource <T>();

            task.ContinueWith(t =>
            {
                var res = task.GetPropertyValue(nameof(Task <T> .Result));
                tcs.SetResult((T)res);
            });
            return(tcs.Task);
        }
Exemple #2
0
        public static object ExecuteMethod(this IMethodExecutable executable)
        {
            var target = executable.GetTargetMethodRiseObject();

            if (target == null)
            {
                throw new InvalidDataException();
            }

            var parameters = new List <Parameter>();

            if (executable is IParameterContainer castedParametrizedExecutable)
            {
                parameters = castedParametrizedExecutable.GetParameters().ToList();
            }

            if (!string.IsNullOrEmpty(executable.MethodName) && executable.MethodName.ContainsChar('.'))
            {
                return(target.RunMethodPath(executable.MethodName, parameters));
            }

            return(target.RunMethod(executable.MethodName, parameters));
        }
Exemple #3
0
 public static Task ExecuteAsyncMethod(this IMethodExecutable executable)
 => (Task)executable.ExecuteMethod();