依赖注入与构造函数重载

时间:2019-08-30 04:47:02

标签: c# dependency-injection

我正在一个.net核心项目中,每个控制器都有自己的DI服务。所有这些服务共享一些共同的东西,所以我抽象了一个BaseService类:

public class BaseService
{
    public BaseService(IHttpContextService srv)
    {
        ...
    }
}

BaseService,换句话说,所有服务都需要HTTP上下文的另一个服务。

现在,如果我需要新控制器的新服务,则需要从BaseService继承:

public class MyFirstService : BaseService
{
    public MyFirstService(IHttpContextService srvHttp, AdditionalService srvAdditional) {}
}

在其构造函数中,我将需要再次指定IHttpContextService,以及此MyFirstService需要的一些其他服务。

但这似乎是错误的,因为孩子是后代,因此应该自然拥有IHttpContextService。更不用说孩子没有构造函数,该构造函数的参数与祖先参数相同,从而产生编译错误。

有没有一种方法可以在构造函数之外添加DI对象?还是只是摆脱.net核心的DI?还是应该更改我的设计模式?

0 个答案:

没有答案