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;
        }