Asp.net core 没有从';XXXX和x27;至';Microsoft.AspNetCore.signal.Hub<;XXXX>;

Asp.net core 没有从';XXXX和x27;至';Microsoft.AspNetCore.signal.Hub<;XXXX>;,asp.net-core,dependency-injection,signalr,Asp.net Core,Dependency Injection,Signalr,我将我的信号集线器定义为 public class OutputMessages : Hub, IOutputMessages { public OutputMessages(IHubContext<OutputMessages> hubContext, ILogger<OutputMessages> logger, ApplicationDbContext dbContext) {...} public void AdminMe

我将我的信号集线器定义为

public class OutputMessages : Hub, IOutputMessages
{
       public OutputMessages(IHubContext<OutputMessages> hubContext, ILogger<OutputMessages> logger, ApplicationDbContext dbContext)
       {...}
       public void AdminMessages(string message, bool? consoleOnly)
       {...}
}
public类OutputMessages:Hub,IOutputMessages
{
公共输出消息(IHubContext hubContext、ILogger logger、ApplicationDbContext dbContext)
{...}
公共消息(字符串消息,bool?控制台)
{...}
}
然后通过这种方式将此服务注入控制器

public class ApplicationAPIController : ControllerBase
{
    public ApplicationAPIController(ILogger<ApplicationAPIController> logger, ApplicationDbContext dbContext, IConfiguration Configuration, CoreObjectDumper.CoreObjectDumper dump, IHubContext<OutputMessages> _outputMessages)
    {...}
     ...
                    outputMessages.Clients.All.SendCoreAsync("AdminMessages", new object[] { "hello" });
}
公共类应用程序API控制器:ControllerBase
{
公共应用程序API控制器(ILogger记录器、ApplicationDbContext dbContext、IConfiguration配置、CoreObjectDumper.CoreObjectDumper转储、IHubContext\u输出消息)
{...}
...
outputMessages.Clients.All.SendCoreAsync(“AdminMessages”,新对象[]{“hello”});
}
所有的编译和工作都很好,没有例外,甚至我在OutputMessages中看到了连接,除了Signal-client的主要未来不接收消息。当然,我在控制器中看不到我的类型化方法AdminMessages of Hub

如果我尝试将集线器服务作为类型化类注入控制器

        public ApplicationAPIController(ILogger<ApplicationAPIController> logger, ApplicationDbContext dbContext, IConfiguration Configuration, CoreObjectDumper.CoreObjectDumper dump, IHubContext<OutputMessages, **IOutputMessages**> _outputMessages)
public ApplicationAPIController(ILogger记录器、ApplicationDbContext数据库上下文、IConfiguration配置、CoreObjectDumper.CoreObjectDumper转储、IHubContext输出消息)
但收到来自编译器的奇怪消息


类型“OutputMessages”不能用作泛型类型或方法“IHubContext”中的类型参数“THub”。没有从“OutputMessages”到“Microsoft.AspNetCore.signar.Hub”的隐式引用转换。

您键入的Hub需要这样声明:

公共类输出消息:集线器
{
公共消息(字符串消息,bool?控制台)
{...}
}
你可以阅读更多关于它的内容


要注入
记录器
ApplicationDbContext
只需使用DI即可。

告诉我们如果我将hub定义为OutputMessages,您是如何注入所有内容的:hub(在链接中完全遵循microsoft规则)编译很好,但在运行时我收到错误-无法解析类型为“microsoft.AspNetCore.signal.hub`1”的服务在Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp,类型类型,类型requiredBy,布尔值isDefaultParameterRequired)尝试激活“OutputMessages”时出现[IOutputMessages]'可能是因为您正在将构造函数传递给中心。为什么不从DI中解析
ILogger
ApplicationDbContext