У меня есть веб-API, в который в контроллер встроен интерфейс, и этот интерфейс, называемый ISystem
, может быть экземпляром нескольких различных классов, скажем, System1
и System2
. В зависимости от значения, переданного в заголовке HTTP вызова API, я создаю конкретный экземпляр System1
или System2
для объема данного запроса. Я использую конструктор AddScoped()
, который принимает фабричный метод, и в этом фабричном методе я получаю экземпляр HttpContextAccessor
, чтобы перейти к текущему HttpContext
, проверить заголовки и построить соответствующий конкретный класс.
Теперь я добавил концентратор SignalR к этому API, и для концентратора также требуется экземпляр того же интерфейса, который в настоящее время внедрен в конструктор концентратора.
Моя проблема в том, что я понятия не имею, как может получить некоторую определенную пользователем часть данных c для вызывающей стороны метода-концентратора для использования на фабрике AddScoped()
, и поэтому у меня нет возможности узнать, какой конкретный класс ISystem
создать при поступлении вызова на мой хаб. Концентратор не требует аутентификации.
Любая помощь будет принята с благодарностью.