.NET CORE 2.0中的SignalR依赖性注入



我是SignalR的新手Chathub。我发现的所有示例似乎已经过时或与ASP.NET核心无关。

有人知道如何正确执行此操作吗?

编辑:要澄清,我知道如何做di en asp.net核心,问题是我不知道如何在SignalR Hub中进行操作。

signalr,有一个SignalRAppBuilderExtensions类,可以为您提供UseSignalR方法。

Startup.cs中:

using Microsoft.AspNetCore.Builder;
public void Configure(IApplicationBuilder app)
{
    app.UseSignalR(routes =>
    {
        routes.MapHub<YourHub>("/yourhub");
    }
 }

然后像往常一样做生意

 public class YourHub: Hub
 {
     public YourHub(Stuff stuff)
     {
     }
 }

版本:microsoft.aspnetcore.signalr 1.0.0-preview1-final

在.NET核心2(依赖项注入(中作为功能出现 - 您无需添加诸如Unity等软件包等。这是官方文档。

基本上,在具有.NET核心应用程序时,您的入口点Program.csStartup.cs文件将在应用程序的初始启动下执行。

带有依赖注入的"魔术"发生在Startup.cs中。在那里(默认情况下(您有

public void ConfigureServices(IServiceCollection services)
{
 /// code
}

要添加注入,您需要执行以下操作:

services.AddTransient<IMyInterface, MyClassImplementingMyInterface>();

除了AddTransient,还有另外2种可能性,可以定义您服务的寿命。它们是:AddSingletonAddScoped。我上面提到的这个答案以及文档很好地解释了所有这些的含义,但用几句话进行了说明:

取决于我们如何配置此服务的寿命 容器将提供相同或不同的实例 为请求类服务。

  • AddTransient-对象总是不同的;一个新实例是提供给每个控制器和每个服务。
  • AddScoped-对象在请求中是相同的,但是在不同的请求中有所不同
  • AddSingleton-每个对象的对象相同和每个请求(无论是否提供实例配置(

最新更新