Я хочу добавить службу на основе значения заголовка HTTP. Поэтому у меня есть 2 класса - DbDataProvider и InMemDataProvider, оба из которых реализованы из IDataProvider. Всякий раз, когда выполняется вызов API, клиенту передается заголовок, который определяет, требуется ли DbDataProvider или требуется InMemDataProvider. Как мне это достичь? Короче говоря, мне нужно внедрить услугу в ServiceCollection в одном из посредников. Это возможно?Injecting Service в промежуточном программном обеспечении в ASP.NET Core
Проблема в том, что в методе ConfigureService в классе Startup я не могу получить HttpContext. Я написал промежуточное программное обеспечение, в котором я могу получить HTTP-контекст, но как мне добавить службу там?
Предотвратите инъекционные услуги на основе условий выполнения, так же, как вы должны [не вводить сами данные времени выполнения] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=99) в ваше приложение компоненты. Вместо этого есть составной компонент, который вводится с обеих реализаций и перенаправляет вызов реализации во время выполнения. Заводы вряд ли когда-либо будут правильным решением. – Steven