NET6 自动注册依赖注入容器 代码实现
时间: 2024-01-09 09:05:50 浏览: 38
在 .NET 6 中,我们可以使用以下步骤来自动注册依赖注入容器:
1. 在 `Program.cs` 文件中,创建一个新的扩展方法 `AddServices`,用于注册依赖注入:
```csharp
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddServices(this IServiceCollection services)
{
// 添加服务
services.AddScoped<IMyService, MyService>();
services.AddScoped<IOtherService, OtherService>();
return services;
}
}
```
2. 在 `Program.cs` 文件的 `CreateHostBuilder` 方法中,调用 `AddServices` 方法来注册依赖注入:
```csharp
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureServices((hostContext, services) =>
{
// 自动注册服务
services.AddServices();
});
```
在上述代码中,我们使用了 `ConfigureServices` 方法来注册服务。这个方法会在应用启动时被调用,并且会将 `IServiceCollection` 对象作为参数传递进来。
通过调用 `AddServices` 方法,我们可以自动注册我们需要使用的服务。在这个例子中,我们使用 `AddScoped` 方法来注册服务,这意味着每个请求或作用域中都会创建一个新的服务实例。
这就是.NET 6 中自动注册依赖注入容器的基本实现方法。