Ссылаясь на https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests
Используя стандартный шаблон HttpClientFactory, я могу ввести HttpClient в MyApiClient.Код установки приложения может настроить HttpClient с множеством наворотов, о которых заботится приложение (время жизни, политики повторных попыток и т. Д.).
Что если я хочу, чтобы некоторые из HttpMessageHandlers были предоставлены MyApiClient?
Один из таких вариантов использования будет для обработки исключений.Я мог бы реализовать HttpMessageHandler, который проверяет код состояния ответа и выдает исключения.Делая это с помощью HttpMessageHandler, вы сохраняете много кода-шаблона во всех местах, где делается запрос.Другим вариантом использования может быть добавление стандартных заголовков, о которых MyApiClient знает, например, user-agent.
Ожидается, что приложение-потребитель будет достаточно любезно, чтобы добавить обработчики, ожидаемые MyApiClient (возможно, необходимые для выполнения запросов).Мне кажется, это лучший подход, но это единственный реальный вариант, который я вижу на данный момент.
Любопытно, если другие боролись с этой проблемой.