16_依赖注入的三种方法

依赖注入(DI)的三种常见方法

  1. 构造函数注入:这是最常用的注入方式,它通过类的构造函数传递依赖对象。
  2. 方法注入:依赖对象通过类的方法传递,而不是在构造时。
  3. 属性注入:依赖对象直接设置到类的属性上。这种方式不是所有DI容器都支持,但一些容器如Autofac支持。

下面是一个简单的代码示例来说明这些概念:

// 构造函数注入
public class ServiceA
{
    private readonly IServiceB _serviceB;

    public ServiceA(IServiceB serviceB)
    {
        _serviceB = serviceB;
    }
}

// 方法注入
public class ServiceC
{
    private IServiceD _serviceD;

    public void Initialize(IServiceD serviceD)
    {
        _serviceD = serviceD;
    }
}

// 属性注入(示例使用Autofac支持的属性注入)
public class ServiceE
{
    public IServiceF ServiceF { get; set; }
}

在这些示例中:

  • ServiceA 类通过构造函数接收 IServiceB 的实例。
  • ServiceC 类通过 Initialize 方法接收 IServiceD 的实例。
  • ServiceE 类有一个公开的 ServiceF 属性,可以被Autofac等支持属性注入的DI容器设置。
posted @ 2024-03-04 23:19  甜饼怪2030  阅读(95)  评论(0)    收藏  举报