: 1; //if there are no parameters then it is a perfect fit! public ParametersMatch(IEnumerable <ParameterInfo> parameters, List <PropertyInfo> propertiesToMatch, MatchNameAndType propMatcher) { var matchedProps = new List <PropertyMatch>(); foreach (var parameter in parameters) { matchedProps.Add(FindMatch(parameter, propertiesToMatch, propMatcher)); } MatchedPropertiesInOrder = matchedProps.ToImmutableList(); }
private static PropertyMatch FindMatch(ParameterInfo parameter, IEnumerable <PropertyInfo> propertiesToCheck, MatchNameAndType propMatcher) { PropertyMatch bestMatch = null; foreach (var propertyInfo in propertiesToCheck) { var match = propMatcher(parameter.Name, parameter.ParameterType, propertyInfo); if (bestMatch == null || bestMatch.Score < match.Score) { bestMatch = match; } } return(bestMatch); }
public MethodCtorMatcher(MatchNameAndType publicPropMatcher) { _publicPropMatcher = publicPropMatcher; }