gpt4 book ai didi

c# - Simple Injector - 将接口(interface)的特定实现注入(inject)到特定 Controller

转载 作者:行者123 更新时间:2023-11-30 15:23:56 25 4
gpt4 key购买 nike

我有两个实现相同接口(interface)的搜索服务。其中一个用于仅在一小组内部 Umbraco 内容中搜索,另一个搜索 Umbraco 和外部内容并使用默认搜索引擎之外的其他内容。我想保留它们,因为它们每个都表现良好,用于它使用的数据集。

是否可以在 Simple Injector 中指定何时注入(inject)哪个服务?我想为大多数 Controller 注册第一个,基本上作为默认实现。然后,我只需要为两个特定的 Controller 注册第二个。

在浏览时我找到了这个问题的解决方案,但它在 Ninject 中:

Bind<ITeamRespository>().To<SoccerRepository>().WhenInjectedInto(typeof(SoccerController));

Simple Injector 也可以做同样的事情吗?

最佳答案

Simple Injector 等价物是:

container.RegisterConditional<ITeamRespository, SoccerRepository>(
c => c.Consumer.ImplementationType == typeof(SoccerController));

container.RegisterConditional<ITeamRespository, FallbackRepository>(c => !c.Handled);

更多信息可以在 documentation 中找到.

关于c# - Simple Injector - 将接口(interface)的特定实现注入(inject)到特定 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33756257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com