/// <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()); }
/// <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()); }