C# 依赖注入的三种方式
NuGet 包:

添加业务需要的接口及实现类:

在 App 中声明服务提供者对象,以及添加服务等:

核心代码:
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
/// <summary>
/// 服务提供者
/// </summary>
public static IServiceProvider ServiceProvider { get; private set; }
public App()
{
IServiceCollection services = new ServiceCollection();
//注入服务;
services.AddSingleton<ITextService, TextService>();
IServiceProvider serviceProvider = services.BuildServiceProvider();
App.ServiceProvider = serviceProvider; //便于全局使用;
}
}
方式一、通过构造函数注入并获取



方式二、主动从容器中获取

测试 Demo:

代码地址:https://gitee.com/dlgcy/DLGCY_WPFPractice/tree/Blog20230108
与 ChatGPT 的交谈
1、构造函数注入:

2、属性注入:

3、方法注入:

参考文章:
1、[.NET Core 3.0 中 WPF 使用 IOC 的图文教程](https://www.jb51.net/article/164134.htm)
2、ChatGPT
原创文章,转载请注明: 转载自 独立观察员
本文链接地址: WPF 依赖注入之 Microsoft.Extensions.DependencyInjection [http://dlgcy.com/wpf-dependency-injection/]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!