Имеет ли значение порядок привязки при использовании WhenInjectedExactlyInto и привязки по умолчанию? - PullRequest
0 голосов
/ 07 мая 2019

С несколькими модулями Ninject я получаю порядок привязки для определенного интерфейса, который выглядит следующим образом:

Kernel.Bind<ILogger>().To<Logger>().WhenInjectedExactlyInto(typeof(TroubleshootingLogger), typeof(RegularAndStashLogger), typeof(LogStashLogger), typeof(KafkaSendClient));
Kernel.Bind<ILogger>().To<TroubleshootingLogger>();
Kernel.Bind<ILogger>().To<RegularAndStashLogger>().WhenInjectedExactlyInto<ProcessConfiguration>();

У меня вопрос: если при вызове Ядра для экземпляра ProcessConfiguration, оно будет вводить TroubleshootingLogger (связывание по умолчанию) или RegularAndStashLogger (точное связывание)?

1 Ответ

0 голосов
/ 07 мая 2019

Я сам создал небольшую тестовую программу, чтобы определить это сам (я признаю, что должен был сделать это первым).

Как оказалось, Ninject проверяет все привязки «WhenInjectedExactlyInto» перед падениемвернуться к привязке по умолчанию.

Программа (которая зависит от запуска Ninject, да): pastebin.com/9Kpsb25h

...