/// <summary>
        /// invoke the method converting the <paramref name="args"/> if necessary to the appropriate type
        /// </summary>
        /// <param name="args">the arguments for the method</param>
        /// <returns>the return value of the method</returns>
        public object InvokeMethod(params object[] args)
        {
            ArgumentConvertingMethodInvoker invoker = new ArgumentConvertingMethodInvoker();

            invoker.TargetObject = _obj;
            invoker.TargetMethod = _methodName;
            invoker.Arguments    = args;
            invoker.Prepare();
            //invoker.getPreparedMethod().setAccessible(true);
            if (_methodValidator != null)
            {
                _methodValidator.Validate(invoker.GetPreparedMethod());
            }
            return(invoker.Invoke());
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public object InvokeMethod(params object[] args)
        {
            ParameterInfo[] pi = _method.GetParameters();
            if (pi.Length != args.Length)
            {
                throw new ArgumentException("Wrong number of arguments. Expected types " + ArrayUtils.ToString(pi) + ", but received values " + ArrayUtils.ToString(args) + ".");
            }

            ArgumentConvertingMethodInvoker helper = new ArgumentConvertingMethodInvoker();

            helper.TargetObject = _obj;
            helper.TargetMethod = _method.Name;
            helper.Arguments    = args;
            helper.Prepare();
            return(helper.Invoke());
        }