static private ParameterNotDefinedForMethod ( object p0, object p1 ) : |
||
p0 | object | |
p1 | object | |
return |
public static ParameterAssignment Bind(MethodBase method, string parameter, Expression expression) { // NB: This overload is needed for the compiler to emit factory calls; // we can't emit a `ldtoken` instruction to obtain a ParameterInfo. ContractUtils.RequiresNotNull(method, nameof(method)); ContractUtils.RequiresNotNull(parameter, nameof(parameter)); var parameterInfo = default(ParameterInfo); foreach (var candidate in method.GetParametersCached()) { if (candidate.Name == parameter) { parameterInfo = candidate; break; } } if (parameterInfo == null) { throw Error.ParameterNotDefinedForMethod(parameter, method.Name); } return(Bind(parameterInfo, expression)); }
public static void ValidateParameterBindings(MethodBase method, ParameterInfo[] parameters, ReadOnlyCollection <ParameterAssignment> argList, bool extensionMethod = false) { var boundParameters = new HashSet <ParameterInfo>(); if (extensionMethod) { boundParameters.Add(parameters[0]); } foreach (var arg in argList) { var parameter = arg.Parameter; var member = parameter.Member; var property = member as PropertyInfo; if (property != null) { // NB: This supports get access via indexers. member = property.GetGetMethod(true); } if (member != method) { throw Error.ParameterNotDefinedForMethod(parameter.Name, method.Name); } if (!boundParameters.Add(parameter)) { throw Error.DuplicateParameterBinding(parameter.Name); } } foreach (var parameter in parameters) { if (!boundParameters.Contains(parameter) && (!parameter.IsOptional || !parameter.HasDefaultValue)) { throw Error.UnboundParameter(parameter.Name); } } }
public static ParameterAssignment Bind(MethodBase method, string parameter, Expression expression) { ContractUtils.RequiresNotNull(method, nameof(method)); ContractUtils.RequiresNotNull(parameter, nameof(parameter)); var parameterInfo = default(ParameterInfo); foreach (var candidate in method.GetParametersCached()) { if (candidate.Name == parameter) { parameterInfo = candidate; break; } } if (parameterInfo == null) { throw Error.ParameterNotDefinedForMethod(parameter, method.Name); } return(Bind(parameterInfo, expression)); }