Пример #1
0
        /// <summary>
        /// Invokes the method.
        /// </summary>
        /// <param name="method">The method.</param>
        /// <param name="instance">The instance.</param>
        /// <param name="parameters">The parameters.</param>
        /// <returns></returns>
        public static MethodInvokeResult InvokeMethod(this MethodInfo method, object instance, List <MethodInvokeParameter> parameters)
        {
            MethodInvokeResult result = null;

            if (method != null)
            {
                result = new MethodInvokeResult();
                var methodParameters = parameters?.OrderBy(x => x.Sequence)?.ToArray() ?? new object[] { };

                try
                {
                    result.ReturnObject = method.Invoke(instance, methodParameters);

                    result.OutObjects = new Dictionary <string, object>();
                    foreach (var one in parameters.Where(x => x.IsOut))
                    {
                        result.OutObjects.Add(one.Name, methodParameters[one.Sequence]);
                    }
                }
                catch (Exception ex)
                {
                    result.Exception = ex.Handle(new { method = method?.GetFullName(), parameters });
                }
            }

            return(result);
        }
Пример #2
0
        /// <summary>
        /// Invokes this instance.
        /// </summary>
        /// <returns></returns>
        public MethodInvokeResult Invoke()
        {
            MethodInvokeResult result = new MethodInvokeResult();

            try
            {
                result.ReturnObject = _methodInfo.Invoke(null, null);
            }
            catch (Exception ex)
            {
                result.Exception = ex.Handle();
            }

            return(result);
        }