对不起,如果标题含糊不清..
我有以下接口实现ILogProvider:
MultiLogProvider、、、LogInjector和AppInsightsLoggerConsoleLogger
我也有课DeviceInfoManager..
预期的行为是:
ILogProvider在这种情况下, MultiLogProvider 接受一个,AppInsightsLogProvider和ConsoleLoggerMultiLogProvider被注入LogInjectorandDeviceInfoManager(仅供参考,LogInjector依赖于DeviceInfoManager,因此很复杂)任何其他请求
ILogProvider都应该得到LogInjector
我已经尝试了, 和其他几个函数的一些不同变体.when,但我要么最终得到循环依赖,要么由于一些看似不确定的解析循环,请求永远无法解析。.whenNoAncestorMatches.when*
我相当肯定这两行是正确的:
this.container.bind<ILogProvider>(TYPES.ILogProvider).to(ConsoleLogger).inSingletonScope().whenInjectedInto('MultiLogProvider');
this.container.bind<ILogProvider>(TYPES.ILogProvider).to(AppInsightsLoggingProvider).inSingletonScope().whenInjectedInto('MultiLogProvider');
我无法弄清楚.when以下 2 使用什么功能:
this.container.bind<ILogProvider>(TYPES.ILogProvider).to(MultiLogProvider).inSingletonScope().when*????
this.container.bind<ILogProvider>(TYPES.ILogProvider).to(LogInjector).inSingletonScope().when*????
感谢任何帮助。