Как получить ссылку на контекстный концентратор ASP.NET Core SignalR вне контроллера? - PullRequest
0 голосов
/ 04 мая 2018

Я только начал использовать SignalR для ASP.NET Core. Я использовал SignalR для ASP.NET в течение нескольких лет.

Я использую:

Microsoft.AspNetCore.All 2.0.7
Microsoft.AspNetCore.SignalR 1.0.0-preview2-final
Microsoft.AspNetCore.SignalR.Client 1.0.0-preview2-final

Похоже, что в ASP.NET Core версии SignalR я больше не могу использовать GlobalHost или IConnectionManager для получения ссылки на контекст концентратора. Я могу использовать DI, чтобы получить ссылку на контекст концентратора в контроллере без каких-либо проблем.

public BroadcastController(IHubContext<NotificationHub> hubContext)
{
_hubContext = hubContext;
}

Но мне нужно знать, как это сделать вне контроллера.

1 Ответ

0 голосов
/ 04 мая 2018

Вы можете внедрить IHubContext в любой класс, кроме контроллера. Проверьте фрагмент кода ниже:

 public class NotificationListnerExtension : INotificationListnerExtension
    {
        private readonly IHubContext<Notification> _notificationHubContext; 

        public NotificationListnerExtension(
            IHubContext<Notification> notificationHubContext)
        {
            _notificationHubContext = notificationHubContext;                
        }
}
...