使用Unity有条件地注入依赖
本文关键字:注入 依赖 有条件 Unity 使用 | 更新日期: 2023-09-27 18:14:29
我使用Unity (DI)注入我的注册服务到我的控制器。
控制器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配置注入我的IRegistrationService
的续订服务,只有当我的控制器要求它?
我知道在Ninject中你会这样做:
.WhenInjectedInTo(typeof(RenewalController));
我读过这个问题,但不能理解它,也不能把它应用到我的例子中:
如何根据unity的注入类型有条件地绑定实例?
告诉容器应该向RenewalController
注入什么依赖
container.RegisterType<RenewalController>(new InjectionConstructor(
new ResolvedParameter<RenewalService>(),
new ResolvedParameter<IRenewalTypedFactory>()));