c# - 如果我为集线器定义构造函数,连接将关闭

标签 c# asp.net-core dependency-injection constructor signalr

我的 Hub 需要一个构造函数来连接到 DependencyInjections。 一旦我为我的 Hub 声明了一个 private readonly 依赖变量和一个构造函数 - 即使其中没​​有代码 - 我甚至在 OnConnectedAsync 之前就得到了 ConnectionClose > 运行。

意味着 OnConnectedAsync 永远不会运行!

Error: Connection disconnected with error 'Error: Server returned an error on close: Connection closed with an error.'.

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...
}

最佳答案

您需要注册您的依赖项,以便它可以注入(inject)到 Hub 中。

services.AddTransient<Chatter>();

有可能 DI 容器不知道依赖项以便注入(inject)它,这会导致错误。

关于c# - 如果我为集线器定义构造函数,连接将关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55662258/

相关文章:

c# - 使用 Microsoft.AspNetCore.NodeServices 调用 JS 文件时获取 Node 调用超时错误

asp.net-core - 检查组是否包含任何客户端

asp.net-core - Hangfire 作业未在我的 Asp .Net Core 站点上运行

java - 跨多线程的 Spring bean 引用

c# - 如何使用反射从事件中获取底层委托(delegate)列表?

c# - 保持文件打开,当应用程序崩溃时不要丢失数据

c# - 包使用根命名空间,它是我的主要类名之一

dependency-injection - 使用 Ninject 2.0 注入(inject)多个相同类型的构造函数参数

clojure - 如何在Clojure中使用Stuart Sierra的组件库

c# - 如何使用 c# 使用 httpwebrequest 从 json api 获取数据?