15_依赖注入和控制反转

依赖注入和控制反转

  1. 在.NET中,依赖注入 (DI) 是一种技术,用于实现控制反转 (IoC),它允许将类的依赖关系通过构造函数、方法或属性来注入。这样可以提高代码的模块化和可测试性。

  2. IServiceCollection 是一个服务集合,用于注册应用程序中的服务和组件。这些服务之后可以通过 IServiceProvider 来解析和提供。

代码示例

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

首先安装Microsoft.Extensions.DependencyInjection依赖包.

using Microsoft.Extensions.DependencyInjection;
using System;
namespace DependencyInjectionExample
{
    // 定义一个接口
    public interface IGreetingService
    {
        void Greet(string name);
    }
    // 实现接口的服务
    public class GreetingService : IGreetingService
    {
        public void Greet(string name)
        {
            Console.WriteLine($"Hello, {name}!");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            // 创建服务集合并注册服务
            var services = new ServiceCollection();
            services.AddTransient<IGreetingService, GreetingService>();

            // 构建服务提供者
            var serviceProvider = services.BuildServiceProvider();
            // 从服务提供者中获取服务实例
            var greetingService = serviceProvider.GetService<IGreetingService>();
            greetingService.Greet("World");
        }
    }
}
  1. 在这个例子中,我们定义了一个 IGreetingService 接口和一个 GreetingService 类,它实现了这个接口。
  2. Main 方法中,我们创建了一个 ServiceCollection 对象,并使用 AddTransient 方法注册了 GreetingService 作为 IGreetingService 的实现。
  3. 然后,我们通过 BuildServiceProvider 方法创建了一个 IServiceProvider 对象,并使用它来获取 IGreetingService 的实例。
  4. 最后,我们调用 Greet 方法来输出问候信息。
posted @ 2024-03-04 23:18  甜饼怪2030  阅读(17)  评论(0)    收藏  举报