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 @   甜饼怪2030  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示