Как IHttpClientFactory.CreateClient(customClient) создает асинхронное определение HttpClient?C#

Место общения программистов C#
Ответить
Anonymous
 Как IHttpClientFactory.CreateClient(customClient) создает асинхронное определение HttpClient?

Сообщение Anonymous »

Я столкнулся с необычным случаем, когда именованный HttpClient, который я хочу создать, запускается с помощью асинхронной функции, например:

Код: Выделить всё

  services.AddHttpClient("customClient", async (serviceProvider, httpClient) => {...});
А затем, когда я пытаюсь вызвать его из экземпляра IHttpClientFactory внутри службы, в которой я хочу его использовать, вот так:

Код: Выделить всё

  //Constructor start
this.httpClient = httpClientFactory.CreateClient("customClient");
//Constructor end
Я получаю недоработанный HttpClient, где установлен BaseAddress, но DefaultRequestHeaders.Authorization отсутствует, несмотря на то, что оба они установлены в та же асинхронная функция AddHttpClient (но заголовок Authorization устанавливается только после ожидания 1 вызова).
Поэтому мне было интересно, как и в заголовке вопроса: что происходит, когда CreateClient(name) вызывается синхронно, в то время как установка HttpClient является асинхронной?
Разве не существует механизма, который ожидает такого рода определений? Судя по тому, что я пробовал, это не так.

Подробнее здесь: https://stackoverflow.com/questions/733 ... nc-definit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»