.NET 在控制台或者桌面程序中使用依赖注入

1.下载Microsoft.Extensions.DependencyInjection包(具体根据自身项目的版本对应去选择)

我这里选择的是.net80版的

2.在Main函数里面写如下代码

// 配置依赖注入容器

csharp 复制代码
var services = new ServiceCollection();
ConfigureServices(services);
csharp 复制代码
private static void ConfigureServices(IServiceCollection services)
{
    // 添加 HttpClientFactory
    services.AddHttpClient();

    // 添加主窗体
    services.AddTransient<TestForm2>();
}

3.在使用的地方取你想要的类型的实例

csharp 复制代码
// 构建服务提供者
var serviceProvider = services.BuildServiceProvider();

// 获取主窗体实例并运行
var runForm = serviceProvider.GetRequiredService<TestForm2>();
Application.Run(runForm);

4.在你使用的类型里面可以使用依赖注入:

csharp 复制代码
public partial class TestForm2 : Form
{
    private readonly IHttpClientFactory _httpClientFactory;

    public TestForm2(
        IHttpClientFactory httpClientFactory
        )
    {
        InitializeComponent();
        _httpClientFactory = httpClientFactory;
    }
}

然后就可以愉快的编程了。

相关推荐
海盗123415 小时前
微软技术周报——2026-07-22
microsoft·c#·.net
海盗123415 小时前
微软技术日报 ——2026-07-21
microsoft·c#·.net
半亩码田16 小时前
【.NET新特性·第8篇】.NET 9 AI 构建基块:Microsoft.Extensions.AI
人工智能·microsoft·.net
Ctrl+Z侠1 天前
.NET WebApi Windows / Linux Docker 全链路压测与瓶颈定位 0 到 1 教程
linux·windows·.net
慧都小妮子1 天前
Aspose.CAD for .NET 26.6 更新发布
pdf·.net·3d渲染·cad·pdf导出·ifc编辑
夜莺悠吟2 天前
关于对 C# 中 ImplicitUsings,GlobalUsings 的讨论
c#·.net
fen_fen3 天前
麒麟 Linux aarch64安装.NET 6,并适配.net应用(达梦数据库)
linux·服务器·.net
黑洞视界4 天前
高性能进程内队列 BufferQueue 1.0 版本发布
.net