gpt4 book ai didi

c# - 使用 Unity 有条件地注入(inject)依赖项

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:25 26 4
gpt4 key购买 nike

我正在使用 Unity (DI) 将我的注册服务注入(inject)到我的 Controller 中。

Controller

public class RenewalController : Controller
{
private readonly IRegistrationService _registrationService;
private readonly IRenewalTypedFactory _renewalFactory;

public RenewalController(IRegistrationService registrationService, IRenewalTypedFactory renewalFactory)
{
_renewalFactory = renewalFactory;
_registrationService = registrationService;
}

// GET: Renewal
public ActionResult Renew()
{
return View();
}

统一配置

container.RegisterType<IRegistrationService, RegistrationService>(new PerRequestLifetimeManager());

已经有一个注册服务,但我现在必须创建一个重写方法的续订服务类。

public class RenewalService : RegistrationService, IRegistrationService
{
...
}

如何让我的 Unity 配置仅在我的 Controller 请求时为我的 IRegistrationService 注入(inject)更新服务?

我知道在 Ninject 中你会做类似的事情:

.WhenInjectedInTo(typeof(RenewalController));

我读过这个问题,但无法理解它,也无法将其应用到我的示例中:

How to conditionally bind a instance depending on the injected type using unity?

最佳答案

告诉容器应该将什么依赖项注入(inject)RenewalController

container.RegisterType<RenewalController>(new InjectionConstructor(
new ResolvedParameter<RenewalService>(),
new ResolvedParameter<IRenewalTypedFactory>()));

关于c# - 使用 Unity 有条件地注入(inject)依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783865/

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