使用 WhenInjectedExactlyInto 和默认绑定时绑定顺序是否重要?

Does Binding Order Matter When Using WhenInjectedExactlyInto and a Default Binding?

对于多个 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(确切绑定)?

我继续构建了一个小测试程序来自己确定(我承认我应该先这样做)。

事实证明,Ninject 确实会在回退到默认绑定之前检查所有 "WhenInjectedExactlyInto" 绑定。

程序(依赖于Ninject到运行,呃):pastebin.com/9Kpsb25h