но другого ответа у меня нет.
1. Зачем фабрике запрашивать произвольные типы из контейнера?
2. Почему фабрика контролирует время жизни объекта?
По второму вроде логично: кто объект создаёт, тот его и танцует
https://t.me/pro_net/621992
Ну по мне это сомнительный дизайн.
Ты же хочешь использовать какие то свои сервисы в хендлерах или при конфигурации клиента
Поэтому я их передаю в фабрику.
Для каждого хендлера свой сервис. Что ты передашь в фабрику?
Эта реализация фабрики нарушает SRP.
Работать то как то надо
Конкретно в том методе, который ты прислал, никакой проблемы нет. Это статический метод, который используется на этапе композиции, и при помощи ленивой инициализации (HttpClientFactoryOptions.HttpMessageHandlerBuilderActions) и функционального интерфейса (Action<HttpMessageHandlerBuilder>) создаёт то что нужно. Другое дело что в HttpMessageHandlerBuilder кто-то добавил IServiceProvider.Services зачем-то, вместо того, чтобы спрятать их за тот же функциональный интерфейс.
Ты знаешь когда он вызывается?
А есть разница?
Конечно, потому что этот метод вызывается фабрикой, при создании клиента. И чтобы его вызвать в фабрику инжектится сервис провайдер
Мне всё равно когда оно вызывается, честное слово. Судя по тому что я вижу, логика конфигурирования помещается в HttpClientFactoryOptions, который использует билдер.
Обсуждают сегодня