我需要我的Hub的构造函数才能连接到DependencyInjections。
一旦声明了private readonly
依赖变量和集线器的构造函数-即使其中没有代码,我甚至在ConnectionClose
运行之前就得到了OnConnectedAsync
。
意味着OnConnectedAsync
永远不会运行!
错误:连接已断开,错误为“错误:服务器在关闭时返回了错误:连接因错误而关闭。”
private readonly Chatter _chatter;
public ChatHub(Chatter chatter)
{
_chatter = chatter;
}
甚至
private readonly Chatter _chatter;
public ChatHub(Chatter chatter)
{
//Empty
}
但这没关系:
private readonly Chatter _chatter;
public ChatHub()
{
//Whatever...
}
答案 0 :(得分:1)
您需要注册您的依赖项,以便可以将其注入到集线器中。
services.AddTransient<Chatter>();
可能是DI容器不知道要注入依赖项,从而导致错误。
答案 1 :(得分:0)
就我而言,我试图发送我的 AppSettings 类。在我的 Startup.cs 中,我已经有了我的 appsettings.json 类 AppSettingOptions,为服务注入设置。
services.Configure<AppSettingOptions>(Configuration.GetSection(AppSettingOptions.SettingsName));
但我忘记使用 IOptions 数据类型作为参数而不是 AppSettingOptions 数据类型。
public ClassA(IOptions<AppSettingOptions> appSettingOptions)
对于额外的调试,如果这不能解决您的问题,如果您将参数设置为默认值 null,您至少应该能够进入服务器端的构造函数,而不是在客户端查找错误。
public ClassA(IOptions<AppSettingOptions> settingOptions = null)