我正在开发一个包含数据层,业务层和UI层(MVC 6应用程序)的解决方案。
MVC应用程序仅适用于业务层的接口。它对服务(业务层的实现)和数据层一无所知。它只引用包含业务层接口的项目。
我遇到了与依赖关系相关的问题。根据我的观点,我必须将所有依赖项(包括存储库和服务)添加到<script media =" screen and (min-device-width: 800px)" src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>
文件中,但MVC 6应用程序不得引用存储库或服务。
如何在不添加引用的情况下添加所有依赖项?
答案 0 :(得分:0)
MVC6应用程序必须直接或间接地引用您的服务和存储库实现。 不应做的事情是从Controller
组件构建这些实现的实例。
换句话说,在Startup.cs中执行此操作 okay :
public void ConfigureServices(IServiceCollection services) {
services.AddInstance<IServiceOrRepo, ServiceOrRepoImpl>();
}
可以在任何控制器中执行此操作:
private readonly IServiceOrRepo _serviceOrRepo;
public MyController() {
this._serviceOrRepo = new ServiceOrRepoImpl();
}
但无论如何,在运行时,控制器必须能够从其引用的程序集中解析实际的ServiceOrRepoImpl
实现实例(当然,通过IoC容器)。这意味着包含实现的程序集或项目必须由MVC项目直接或间接引用。