首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多层解决方案中MVC6应用中的依赖关系

多层解决方案中MVC6应用中的依赖关系
EN

Stack Overflow用户
提问于 2016-01-07 23:23:21
回答 1查看 150关注 0票数 0

我正在开发一个包括数据层、业务层和UI层(MVC6应用程序)的解决方案。

MVC应用程序只与业务层的接口一起工作。它对服务(业务层的实现)和数据层一无所知。它只引用包含业务层接口的项目。

我有一个与依赖相关的问题。根据我的观点,我必须将所有依赖项(包括存储库和服务)添加到Startup.cs文件中,但MVC6应用程序不能有对存储库或服务的引用。

如何在不添加引用的情况下添加所有依赖项?

EN

回答 1

Stack Overflow用户

发布于 2016-01-07 23:36:28

MVC6应用程序必须直接或间接地引用您的服务和存储库实现。它不应该做的事情是从您的Controller组件构造这些实现的实例。

换句话说,在Startup.cs中这样做是可以的:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services) {
  services.AddInstance<IServiceOrRepo, ServiceOrRepoImpl>();
}

在任何控制器中这样做都是不允许的:

代码语言:javascript
复制
private readonly IServiceOrRepo _serviceOrRepo;

public MyController() {
  this._serviceOrRepo = new ServiceOrRepoImpl();
}

但无论哪种方式,在运行时,控制器都必须能够从其引用的程序集之一(当然是通过IoC容器)解析实际的ServiceOrRepoImpl实现实例。这意味着包含实现的程序集或项目必须由MVC项目直接或间接引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34658847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档