依赖注入容器(DI Container)是一种工具,用于管理和解析依赖关系。常用的依赖注入容器有 Autofac、Ninject、Unity 等。在 ASP.NET Core 中,内置了依赖注入支持。
注册依赖
在依赖注入容器中注册依赖关系。
using Microsoft.Extensions.DependencyInjection;
public class Program
{
public static void Main()
{
var services = new ServiceCollection();
// 注册依赖
services.AddTransient<ILogger, ConsoleLogger>();
services.AddTransient<UserService>();
var serviceProvider = services.BuildServiceProvider();
// 解析依赖
var userService = serviceProvider.GetService<UserService>();
userService.RegisterUser("Alice");
}
}
生命周期管理
依赖注入容器可以根据需要管理依赖对象的生命周期。
- Transient:每次请求都创建新的实例。
- Scoped:在同一作用域内共享同一个实例。
- Singleton:整个应用程序生命周期内共享同一个实例。
services.AddTransient<ILogger, ConsoleLogger>(); // Transient
services.AddScoped<UserService>(); // Scoped
services.AddSingleton<IApplicationLifetime>(); // Singleton