.Net Core随笔(.Net Core DI依赖注入)
2018-08-14 本文已影响59人
喜欢孤独灬
首先了解一下DI和IOC,首先两者并不是一个概念,虽说差不多,DI是IOC的一种具体实现:DI(Dependency Injection):依赖注入,我的理解是,类依赖于接口,然后将这种依赖注入到某种容器当中
IOC(Inversion Of Control):控制反转,我的理解是,对于控制权的转交,本来控制权在A手上,现在由B来接管
这里先贴上自己github的源码吧(包括前几天的swagger工具):https://github.com/wangdaguo68/.net-core-webapi.git
1、聊聊依赖(Dependency)PS:其实这里的依赖就是设计模式6大原则其中之一---依赖倒置原则
我们先创建好.net core webapi项目,然后再新建一个model项目用于存放模型类,再建一个数据库User对应的模型类,数据连接层就用微软自带的ef core ,不多说了,如图:
然后我们就得新建上述说的一个接口,以及接口的实现类 ,如图:
2、聊聊注入(这里的注入说白了其实就是体现的控制反转,把依赖的创建丢给其它人,自己只负责使用)
.NET Core中DI提供了一个容器IServiceCollection,在Startup.cs中的ConfigureServices中进行注册, 如图:
其实IServiceCollection提供了除了AddScoped之外三种方式,只是生命周期不一样,如图:
3、调用
上面的依赖注入我们完成了,那就该在控制器中使用了,如图:
至此,算是大功告成了,那么我们为什么要用DI或者说IOC,其实归根结底还是便于维护,降低耦合