专业的编程技术博客社区

网站首页 > 博客文章 正文

C#依赖注入(c#依赖注入如何传参)

baijin 2024-10-15 08:30:58 博客文章 10 ℃ 0 评论

在 C# 中,依赖注入(Dependency Injection,简称 DI)是一种设计模式,用于降低代码之间的耦合度。它通过将依赖关系从硬编码中解耦出来,使得代码更加灵活、可测试和可维护。

以下是 C# 中实现依赖注入的一些常见方法:

使用构造函数注入:

通过构造函数将依赖项作为参数传递给类。这是最常用的注入方式之一。

public class Service : IService  
{  
    private readonly IRepository _repository;  
      
    public Service(IRepository repository)  
    {  
        _repository = repository;  
    }  
      
    // 实现 IService 接口的方法  
}

使用属性注入:

通过属性的 setter 方法将依赖项注入。这种方式不如构造函数注入常用,因为它违反了封装的原则。

public class Service : IService  
{  
    private readonly IRepository _repository;  
      
    public Service()  
    {  
    }  
      
    public IRepository Repository  
    {  
        set { _repository = value; }  
    }  
      
    // 实现 IService 接口的方法  
}

使用方法注入:

通过类的方法将依赖项注入。这种方式不如构造函数和属性注入常用,因为它增加了方法的复杂性。

public class Service : IService  
{  
    private readonly IRepository _repository;  
      
    public Service(IRepository repository)  
    {  
        _repository = repository;  
    }  
      
    public void PerformAction(ActionType actionType)  
    {  
        switch (actionType)  
        {  
            case ActionType.Read:  
                _repository.ReadData();  
                break;  
            case ActionType.Write:  
                _repository.WriteData();  
                break;  
            default:  
                throw new ArgumentOutOfRangeException(nameof(actionType), "Unsupported action type");  
        }  
    }  
}

使用控制反转容器(IoC 容器):

IoC 容器是 DI 框架的一部分,它负责管理对象的创建和生命周期,以及依赖关系的解析和注入。常见的 IoC 容器有 Autofac、Ninject、Unity 和 Microsoft.Extensions.DependencyInjection 等。使用 IoC 容器可以大大简化 DI 的实现和管理。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表