gpt4 book ai didi

asp.net-core - Asp.Net Core 3.0 使用 HttpClientFactory 和 Autofac

转载 作者:行者123 更新时间:2023-12-01 16:13:31 28 4
gpt4 key购买 nike

我有一个非常默认的 Asp.Net Core 3.0 RestAPI 应用程序。对于内部的某些服务,我想使用 Asp.Net Core 的内置 HttpClientFactory。

所以我在ConfigureServices 的Startup.cs 中有这些

services.AddHttpClient<IService1, Service1>(client =>
{
client.Timeout = TimeSpan.FromSeconds(30);
});
services.AddHttpClient<IService2, Service2>(client =>
{
client.Timeout = TimeSpan.FromSeconds(120);
});

我的服务构造函数之一如下所示:

protected Service1(HttpClient client)
{
this.client = client;
}

在我的 Startup.cs 中,我有 Autofac 的 DI 配置部分:

public void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterType<Service1>().As<IService1>();
builder.RegisterType<Service2>().As<IService2>();
}

我的问题是,这不起作用,因为 Autofac 不知道配置服务中的 MS DI 基础 HttpClientFactory 设置。我应该配置什么才能将 Asp.Net Core HttpClientFactory 与 Autofac 结合使用?

我也尝试过这个建议:Autofac fails to resolve enumerable of typed HttpClients

最佳答案

我成功地使用命名配置解决了这个问题。

在 Startup.cs 中

services.AddHttpClient("sampleClient", client =>
{
client.Timeout = TimeSpan.FromSeconds(120);
});

在Service.cs构造函数中

public Service(IHttpClientFactory httpClientFactory)
{
client = httpClientFactory.CreateClient("sampleClient");
}

关于asp.net-core - Asp.Net Core 3.0 使用 HttpClientFactory 和 Autofac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58616372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com