.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;
    }
}

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

相关推荐
用户7227868123441 天前
.NET 实现雪花算法:高效生成分布式唯一 ID
.net
玩泥巴的1 天前
.NET 8+ 飞书API实战:自动化群组管理与消息推送
c#·.net·二次开发·飞书
唐青枫1 天前
C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
c#·.net
许泽宇的技术分享2 天前
当AI Agent遇上.NET:微软Agent Framework的架构奥秘与实战启示
人工智能·microsoft·.net
SEO-狼术2 天前
DevExpress DXperience Crack
.net
我是唐青枫2 天前
一文理解 C#.NET Tuples:从基础到高级应用
c#·.net
缺点内向2 天前
C# 中 Word 文档目录的插入与删除指南
开发语言·c#·word·.net
唐青枫2 天前
告别 if-else:C#.NET 模式匹配让代码更优雅的正确方式
c#·.net
绿荫阿广3 天前
使用.NET开发并上线一个小智AI对话机器人的MCP服务转接平台
.net·asp.net core·mcp
棉晗榜3 天前
无法解析位于...\global.json 的 global.json 中指定的 .NET SDK 版本
.net