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

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

相关推荐
波波0071 天前
每日一题:中间件是如何工作的?
中间件·.net·面试题
无风听海1 天前
.NET 10之可空引用类型
数据结构·.net
码云数智-园园1 天前
基于 JSON 配置的 .NET 桌面应用自动更新实现指南
.net
无风听海1 天前
.NET 10 之dotnet run的功能
.net
岩屿1 天前
Ubuntu下安装Docker并部署.NET API(二)
运维·docker·容器·.net
码云数智-大飞1 天前
.NET 中高效实现 List 集合去重的多种方法详解
.net
easyboot1 天前
使用tinyply.net保存ply格式点云
.net
张人玉1 天前
WPF 多语言实现完整笔记(.NET 4.7.2)
笔记·.net·wpf·多语言实现·多语言适配
波波0072 天前
Native AOT 能改变什么?.NET 预编译技术深度剖析
开发语言·.net
Crazy Struggle3 天前
.NET 中如何快速实现 List 集合去重?
c#·.net