Я пытаюсь получить хабконтекст от концентратора SignalR.
Я хочу иметь возможность отправлять уведомления клиентам, подключенным к этому хабу, в то время как экземпляр хаба может быть удален.
Предостережение заключается в том, что я динамически регистрирую концентраторы, поэтому у меня есть тип концентратора в качестве объекта Type.
Он регистрируется таким образом:
Application.UseSignalR(R => MapperMethodInfo.MakeGenericMethod(H).Invoke(R, new object [] { Path }));
С H является типом хаба.
Я попытался:
var HubContext = ServiceProvider.GetService(H);
возвращает ноль.
, и я попытался:
Application.Use(async (Context, Next) =>
{
var HubContext = Context.RequestServices.GetRequiredService(H);
});
Лямбда-выражение не называется.
Я прочитал: https://docs.microsoft.com/en-us/aspnet/core/signalr/hubcontext?view=aspnetcore-2.2
, и это тот, который предлагает метод выше.
И я также нашел это решение: Получение контекста концентратора в ядре SignalR из другого объекта
, который не может работать, так как мне нужно знать концентраторы во время компиляции, чего я не знаю, поскольку они приходят в формеплагины, во внешних сборках, и найдены и зарегистрированы с отражением.
Все онлайн-публикации и решения revoОбратимся к двум вышеописанным методам, и в этом случае они не работают.
Как я могу получить контекст концентратора?