Есть ли способ намекнуть, какой конструктор должен использовать Unity?

Юнити InjectionConstructorхорошо работает, когда вам нужно вызвать конкретный конструктор, потому что вы имеете в виду очень специфические зависимости (например, любое сочетание внешних зависимостей, именованных регистраций или безымянных регистраций), но для этого необходимо указать все параметры.

Есть ли какой-нибудь способ дополнить Unity "найти и использовать конструктор с наибольшим количеством параметров" с помощью "найти и использовать конструктор с наибольшим количеством параметров, которые также могут принимать экземпляр IX где-то в подписи "?

1 ответ

Решение

Комментарий Марка послужил основой для ответа. А именно, реализация AddPolicies

  • должен найти конструктор, который соответствует всем значениям (явным), которые я передаю в конструктор InjectionConstructor, Существуют ограничения (например, если значения равны нулю или они сопоставлены с супертипом в конструкторе), и
  • для остальных (неявных) используйте контейнер для их разрешения.

Я не говорю, что это хорошо, хотя. Я в конечном итоге использовал RegisterInstance в другом месте и необходимость смешанного параметра ушла. Но это решение для тех, кому это может понадобиться.