Каков порядок разрешения конструктора?

Как Замок Виндзор определяет, какой конструктор будет разрешен, если есть несколько конструкторов?

Ответ 1

Все доступные конструкторы моделируются как кандидаты, и в основном среди них проводится конкурс.

Каждый параметр в конструкторе представляет зависимость, которая может быть удовлетворена или нет. Для каждого кандидата-конструктора анализируются все зависимости.

Если зависимость может быть удовлетворена, то две точки для кандидата. Если он не может быть удовлетворен, две точки вычитаются из кандидата.

Кандидат-конструктор с наибольшим количеством очков выигрывает и выбирается для создания экземпляра компонента.

Код для этого алгоритма здесь.

Ответ 2

Castle Windsor будет использовать конструктор с большинством параметров, зависимости которых он может решить.

Когда есть два конструктора с тем же числом параметров, которые может разрешить Windsor, поведение было, казалось бы, произвольным, но могло быть исправлено.

Смотрите сообщение от Krzysztof Kozmic