• .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 生命周期服务在它们第一次请求时创建,并且每个后续请求使用相同的实例。

     

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

     瞬时依赖注入测试结果

  • 相关阅读:
    C#单例模式的实现再回顾
    智慧质证使用过程中的4个接口
    Amortized Analysis 均摊分析
    668. Kth Smallest Number in Multiplication Table
    1201. Ugly Number III
    1482. Minimum Number of Days to Make m Bouquets
    744. Find Smallest Letter Greater Than Target
    436. Find Right Interval
    50. Pow(x, n)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/tommao2618/p/14593744.html
Copyright © 2020-2023  润新知