专业编程基础技术教程

网站首页 > 基础教程 正文

C#依赖注入 c#依赖注入教程

ccvgpt 2024-10-12 14:10:06 基础教程 6 ℃

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

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

C#依赖注入 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:

最近发表
标签列表