public HttpServiceRequest(MethodInfo targetMethod, object[] arguments) { if (targetMethod == null) { throw new ArgumentNullException(nameof(targetMethod)); } if (arguments == null) { throw new ArgumentNullException(nameof(arguments)); } var parameters = targetMethod.GetParameters(); if (arguments.Length < parameters.Count(a => a.IsOptional == false)) { throw new ArgumentException("An incorrect number of arguments was supplied for the specified target method.", nameof(arguments)); } Target = new InvocationTarget(targetMethod); Arguments = new OrderedDictionary(arguments.Length); for (int i = 0; i < arguments.Length; i++) { Arguments.Add(parameters[i].Name, arguments[i]); } }
public HttpServiceRequest(string targetMethod, Dictionary <string, object> arguments) { if (targetMethod == null) { throw new ArgumentNullException(nameof(targetMethod)); } if (arguments == null) { throw new ArgumentNullException(nameof(arguments)); } Target = new InvocationTarget(targetMethod); Arguments = new OrderedDictionary(); foreach (var argument in arguments) { Arguments.Add(argument.Key, argument.Value); } }