用途:在 .NET 项目中配置依赖注入(DI),以 Microsoft.Extensions.DependencyInjection 实现,并默认使用 GenericHost(Microsoft.Extensions.Hosting)。服务通过构造函数注入获取。
主要能力:演示控制台/通用项目在 Program.cs 中用 Host.CreateDefaultBuilder 配置 DI,注册 Singleton、Scoped、Transient 服务,并通过 host.Services.GetRequiredService 获取应用服务;演示 WPF 项目在 App.xaml.cs 中创建 IHost、注册服务与 ViewModel/View,在 OnStartup 启动并显示主窗口,在 OnExit 停止主机;展示 MainWindow 与 ViewModel 的构造函数注入写法。
生命周期规则:Singleton 全应用一个实例,适合仓储、全局状态;Scoped 每个请求(Scope)一个实例,适合 DbContext、事务类服务,WPF 中一般不用;Transient 每次请求新实例,适合 ViewModel、一次性服务。
用法与限制:需引用 NuGet 包 Microsoft.Extensions.DependencyInjection 与 Microsoft.Extensions.Hosting(示例版本 9.0.0)。应避免 Service Locator 反模式,即直接注入 IServiceProvider 并调用 GetRequiredService,推荐改用构造函数注入。资料未提供更多平台、收费或效果信息。