public override ConstructorInfo Select(Type type, ArgumentCollection arguments) { ConstructorInfo result = null; var argumentTypes = arguments.GetArgumentTypes(); var constructors = type.GetConstructors(ConstructorBindingFlags); for (var i = 0; i < constructors.Length; i++) { var constructor = constructors[i]; var matched = IsMatch(constructor, argumentTypes); if (matched) { result = constructor; break; } } return result; }