protected virtual bool ArgumentSuppliedForParameter(ParameterInfo parameter, ArgumentCollection arguments) { object argument; if (!arguments.TryGetValue(parameter.Name, out argument)) { return false; } var argumentType = argument.GetType(); if (!parameter.ParameterType.IsAssignableFrom(argumentType)) { return false; } return true; }