zoukankan      html  css  js  c++  java
  • .Net Core的依赖注入

    什么是依赖注入?

    控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。是指程序运行时,将所需的对象注入到组建中。

    什么是控制反转?

    控制反转是将原来需要在程序中手动去new的对象交给IOC容器创建,并且动态的注入到所需的对象当中。

    依赖注入的优势?

    Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。
    采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。

    .Net Core中的依赖注入容器

    ASP.NET Core 包含一个默认支持构造函数注入的简单内置容器,可以在Startup类的ConfigureServices方法中配置内置容器的服务。

    比较常见的还有Autofac。

    依赖注入的方式

     构造函数注入、属性注入

    代码

    类要求在他们构造时向其提供抽象(通常是接口),而不是引用特定的实现。

    先创建服务类和接口。

    在Startup类的ConfigureServices方法中配置内置容器的服务

    依赖注入的3种方式及其生命周期

    1、Transient 瞬时

    Transient 生命周期服务在他们每次请求时被创建。适合轻量级,无状态的服务。

    2、Scoped 作用域

    Scoped生命周期在每次请求时创建一次。

    3、Singleton 单例

    Singleton 生命周期服务在它们第一次请求时创建,并且每个后续请求使用相同的实例。

     

    在控制器中创建注入两次服务,测试不同方式依赖注入的生命周期。

     瞬时依赖注入测试结果

  • 相关阅读:
    【docker】更换挂载目录
    【设计】交互走查表
    MySQL常用字符串函数
    VIM_manual
    MySQL操作符
    基础SELECT实例
    MySQL字符集及校对规则的理解
    Linux命令之tar-rsync
    Linux-PATH_环境变量
    MySQL常用数据类型
  • 原文地址:https://www.cnblogs.com/tommao2618/p/14593744.html
Copyright © 2011-2022 走看看