c#-简单注入器-将接口的特定实现注入到特定控制器
作者:互联网
我有两个实现相同接口的搜索服务.其中一个仅用于搜索一小组内部Umbraco内容,另一个用于同时搜索Umbraco和外部内容,并且使用默认搜索引擎以外的其他内容.我希望保留它们两者,因为它们各自的性能都很好,它们都使用了它所使用的数据集.
是否可以在Simple Injector中指定何时注入哪个服务?我想为大多数控制器注册第一个控制器,基本上将其作为默认实现.然后,我只需要为两个特定的控制器注册第二个.
在浏览时,我找到了解决此问题的方法,但它在Ninject中:
Bind<ITeamRespository>().To<SoccerRepository>().WhenInjectedInto(typeof(SoccerController));
使用Simple Injector可以完成同一件事吗?
解决方法:
简单注入器等效项是:
container.RegisterConditional<ITeamRespository, SoccerRepository>(
c => c.Consumer.ImplementationType == typeof(SoccerController));
container.RegisterConditional<ITeamRespository, FallbackRepository>(c => !c.Handled);
可以在documentation中找到更多信息.
标签:dependency-injection,umbraco,c,simple-injector 来源: https://codeday.me/bug/20191027/1946268.html