c# - 如何获取对控制器外部 ASP.NET Core SignalR 集线器上下文的引用?
问题描述
我刚刚开始使用 SignalR for ASP.NET Core。我已经使用 SignalR for 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
看来,在 SignalR 的 ASP.NET Core 版本中,我不能再使用 GlobalHost 或 IConnectionManager 来获取对集线器上下文的引用。我可以使用 DI 在控制器中获取对集线器上下文的引用,而不会出现任何问题。
public BroadcastController(IHubContext<NotificationHub> hubContext)
{
_hubContext = hubContext;
}
但我需要知道如何在控制器之外进行操作。
解决方案
您可以在除控制器之外的任何类中注入 IHubContext。检查下面的代码片段:
public class NotificationListnerExtension : INotificationListnerExtension
{
private readonly IHubContext<Notification> _notificationHubContext;
public NotificationListnerExtension(
IHubContext<Notification> notificationHubContext)
{
_notificationHubContext = notificationHubContext;
}
}
推荐阅读
- testing - 如果条件没有范围,如何使用等价分区(EP)编写测试用例?
- c# - Mono.Linker.MarkException:错误处理方法:'System.Void Plugin.LocalNotification.Platform.Droid.NotificationServiceImpl
- r - 我必须编辑数据框中的一个元素。怎么做?
- html - 网站徽标在更大屏幕上的 chrome 浏览器中显示更大
- sql - 可序列化的隔离级别 - 它会阻止读取吗?
- spring - NamedParameterJdbcTemplate:参数匹配器的使用无效。预计 3 个匹配器,4 个记录
- c - 错误:c 中的参数类型不兼容
- python - 鱼壳选项卡完成程序简短描述 - 如何?
- react-native - 在 build\kotlin\sessions 检测到多个 Kotlin 守护进程会话 - React-Native
- c++ - 添加 boost 头文件会导致编译时错误