Как Замок Виндзор определяет, какой конструктор будет разрешен, если есть несколько конструкторов?
Каков порядок разрешения конструктора?
Ответ 1
Все доступные конструкторы моделируются как кандидаты, и в основном среди них проводится конкурс.
Каждый параметр в конструкторе представляет зависимость, которая может быть удовлетворена или нет. Для каждого кандидата-конструктора анализируются все зависимости.
Если зависимость может быть удовлетворена, то две точки для кандидата. Если он не может быть удовлетворен, две точки вычитаются из кандидата.
Кандидат-конструктор с наибольшим количеством очков выигрывает и выбирается для создания экземпляра компонента.
Код для этого алгоритма здесь.
Ответ 2
Castle Windsor будет использовать конструктор с большинством параметров, зависимости которых он может решить.
Когда есть два конструктора с тем же числом параметров, которые может разрешить Windsor, поведение было, казалось бы, произвольным, но могло быть исправлено.
Смотрите сообщение от Krzysztof Kozmic