/// <summary> /// Parameterized constructor. /// </summary> public MethodInvocation(object target, MethodBase methodBase, params object[] parameterValues) { target.NotNull("target"); methodBase.NotNull("methodBase"); this.Target = target; this.MethodBase = methodBase; this.InvocationContext = new Dictionary<string, object>(); ParameterInfo[] targetParameters = methodBase.GetParameters(); this.Arguments = new ParameterCollection(parameterValues, targetParameters, param => true); this.Inputs = new ParameterCollection(parameterValues, targetParameters, param => !param.IsOut); }