问候在我的所有控制器上,我回收了包装模型和访问服务层的相同代码 - 我很累心将它复制/粘贴到每个控制器中:
private IProjectService _service;
public New()
{
_service = new ProjectService(new ModelValidation(this.ModelState));
}
public New(IProjectService service)
{
_service = service;
}
Run Code Online (Sandbox Code Playgroud)
在某些地方我可以把它放在我所有的控制器访问它的地方吗?
您可以放入所有其他控制器继承自的基本控制器类:
public class BaseController : Controller
{
protected IProjectService Service { get; private set; }
public New()
{
Service = new ProjectService(new ModelValidation(this.ModelState));
}
public New(IProjectService service)
{
Service = service;
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以阅读依赖注入,并查看使用IOC容器注入这些依赖项.