• .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具体的服务调用  对应以下图

     

  • 相关阅读:
    put 创建索引
    post创建一个空索引
    elasticsearch 安装marvel
    elasticsearch 安装bigdesk插件
    perl 播放windows文件
    如何在十分钟内插入1亿条记录到Oracle数据库?
    常见地址说明
    如何做出实用而强大的数据地图?
    如何利用jqGrid表格方法重新设置caption属性值
    如何给jqGrid表格按照字段进行分组
  • 原文地址:https://www.cnblogs.com/cr-cool/p/13383176.html
Copyright © 2020-2023  润新知