加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入 – 多个项目中的asp.net 5依赖注入

发布时间:2020-12-13 20:09:33 所属栏目:百科 来源:网络整理
导读:我有一个ASP.NET 5 dnxcore解决方案,其中包含一些项目来区分我的逻辑: API 核心(具有业务逻辑服务) DAL(存储库接口) 实体框架(存储库实现) 现在我使用DI在我的API控制器的构造函数中调用我的服务: private readonly IMyService _myService;public Controll
我有一个ASP.NET 5 dnxcore解决方案,其中包含一些项目来区分我的逻辑:

> API
>核心(具有业务逻辑服务)
> DAL(存储库接口)
>实体框架(存储库实现)

现在我使用DI在我的API控制器的构造函数中调用我的服务:

private readonly IMyService _myService;
public Controller(IMyService myservice){ _myService = myService; }

我的核心服务也通过构造函数注入获取存储库:

private readonly IMyRepository _myRepo;
public MyService(IMyRepository myRepo){ _myRepo = myRepo; }

目前我需要在我的API的启动类中定义我的DI容器以使其工作.

我的问题是,如何在我的Core-project中将存储库的DI容器的“构建”放入我的服务中.这样,我的API与我的服务使用Entity Framework这一事实松散耦合,因此我可以更改为mongodb,而无需更改我的API项目.

My question is,how can I put the ‘building’ of the DI container of the repositories in my services in my Core-project. This way,my API is loosely coupled of the fact that my services use Entity Framework,so I can change to,for example,mongodb without changing my API project.

你可以,但你不应该这样做.

依赖注入是在整个库中制作松散耦合类的实践,这些类可以插在一起(通常以多种方式).

但是,每个应用程序都应该有一个composition root,这是我们放置耦合代码的应用程序中的一个位置.我们作为开发人员的第一直觉是尝试将耦合代码存储到自己的库中,但这是一种你应该抵制的冲动.见composition root reuse.

也就是说,许多DI容器都可以通过使用模块来组织应用程序某些部分的配置.在Autofac中,modules is here的文档.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读