【发布时间】:2018-08-30 14:11:37
【问题描述】:
我遇到了以下问题,在我的基本控制器中,我进行了依赖注入。而且我有一个实现基本控制器的类子,我需要传递构造函数。所以我的疑问是,我实现依赖注入的方式是否正确? 如果不是,最好的方法是什么?
我用unity实现D.I,我的ide是VS2017 web api 2。
按照我使用的以下代码: 基本控制器或父控制器:
public class BaseController : ApiController
{
public string[] includes = null;
private readonly IFiltroServico servico;
public BaseController(IFiltroServico _servico)
{
servico = _servico;
}
}
基本控制器到泛型类型实现基本控制器:
public abstract class BaseController<E, R, F> : BaseController
where E : class
where R : class
where F : class
{
private readonly IFiltroServico servico;
public AreaFormacaoController(IFiltroServico _servico): base(_servico)
{
servico = _servico;
}
}
儿童控制器:
public abstract class BaseController<R> : BaseController
where R : class
{
private readonly IFiltroServico servico;
public AreaFormacaoController(IFiltroServico _servico): base(_servico)
{
servico = _servico;
}
//services of controller;
}
【问题讨论】:
-
在基本控制器中没有使用 DI 的好方法,nor is there a good reason to have one in the first place。
-
@NightOwl888 我决定做 DI,因为我的基本控制器是非常通用的,即不管它会工作的类型,由于使用 FilterService 来减少对具有有效类型的控制器。但是我仍然做了更多的工作来学习使用 DI 并知道如何在系统中正确应用它。我已经阅读了您的更多回复,因此在这种情况下如何应用 DI 还不够清楚。
标签: c# rest asp.net-web-api dependency-injection