Asp.Net Core 3.0 использует HttpClientFactory с Autofac - PullRequest
0 голосов
/ 30 октября 2019

У меня довольно стандартное приложение Asp.Net Core 3.0 RestAPI. Для некоторых сервисов внутри я хотел бы использовать встроенный в Asp.Net Core HttpClientFactory.

Так что у меня они есть в моих Startup.cs в ConfigureServices

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 у меня есть раздел конфигурации DI для Autofac:

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

Моя проблема, это не работает, потому что Autofac не знает о MSЯ использую настройки HttpClientFactory в ConfigureServices. Что я должен настроить для использования Asp.Net Core HttpClientFactory с Autofac?

Я также попробовал этот совет: Autofac не удается разрешить перечислимый типизированный HttpClients

1 Ответ

0 голосов
/ 06 ноября 2019

Мне удалось решить эту проблему с именованными конфигами.

В Startup.cs

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

В конструкторе Service.cs

public Service(IHttpClientFactory httpClientFactory)
{
    client = httpClientFactory.CreateClient("sampleClient");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...