.Net Core依赖注入和服务注册

依赖注入和服务注册作为.Net Core最核心的模块  当然需要记录一下 个人学习和理解

1.依赖注入 DI

为什么需要DI,目的是什么? 

之所以需要DI,是因为我们需要实现控制反转 (IOC) 。 (DI) 软件设计模式,这是一种在类及其依赖关系之间实现控制反转 (IoC) 的技术.他是作为实现IOC的框架和方式

为什么需要控制反转(IOC),目的是什么?

为了项目的高度可维护,核心是为了项目的解耦合     

之前我们使用一个对象的时候,需要一步步的去new一个对象,如:我们获取西湖这个对象 就去new一个 中国-->浙江省-->杭州市-->西湖。 那么这个西湖就依赖于杭州市依赖于浙江省依赖于中国。。而IOC的目的就是我可以直接获取西湖这个对象,也不用去new它,也不用去管它到底跟谁有依赖关系,继承哪个父类,直接拿到这个对象,所有的依赖,都会被IOC容器帮我在内部生成的时候就已经实例好了。

    微软官方文档例子

1首先声明一个Model类,2接着增加一个类的实体上下文对象,3然后去服务注册这个上下文,4最后就是调用了 对应以下四张图片

 

2.服务注册

服务注册是项目框架的生成和实现的业务需求的实现。(有内置的 和 自定义的)

服务注册是在Startup类的ConfigureServices下的。项目在创建(Build)的时候就执行

内置的服务,比如建立一个MVC项目 或者一个WebApi项目。那么在生成项目框架的时候,DIE自动为我们在ConfigureServices里添加了像services.AddControllers()控制器 services.AddRazorPages() 视图模板 services.AddMvc()等等,这些都是内置的服务,作为的项目的架构。。

自定义的服务:注册自定义服务的时候必须选择一个生存周期(.Net Core有内置的三种生命周期 瞬时、单例、作用域。内置的服务其实也有声明周期,只是已经配置封装好了,所以看上去是一个services.AddMvc()等等 )   

实例:如支付服务 Pay 有两种方式:支付宝、微信

1首先创建一个服务接口pay,两种实现方式(微信 支付宝), 2选择生命周期方式,注册服务,3具体的服务调用  对应以下图

 

猜你喜欢

转载自www.cnblogs.com/cr-cool/p/13383176.html