aspnet core 2.1中AddSignalR和AddSignalRCore扩展方法的区别
Differences between AddSignalR and AddSignalRCore extension methods in aspnet core 2.1
我正在尝试在我的 aspnet core 2.1 中配置 SignalR project.In Startup.cs class,在 ConfigureServices() 方法中有 2 个选项可供使用。
services.AddSignalR()
services.AddSignalRCore()
这两种方法有什么区别?
我可以轻松地通过 services.AddSignalR()
使用 signalR,但是当我将其更改为 services.AddSignalRCore()
时,它会引发错误。
AddSignalR()
比 AddSignalRCore()
调用了两个额外的服务,如下所示:
这里是AddSignalR()
方法的代码:
public static ISignalRBuilder AddSignalR(this IServiceCollection services, Action<HubOptions> configure)
{
services.Configure(configure);
services.AddSockets();
return services.AddSignalRCore();
}
这里是AddSignalRCore()
方法的代码:
public static ISignalRBuilder AddSignalRCore(this IServiceCollection services)
{
services.AddSingleton(typeof(HubLifetimeManager<>), typeof(DefaultHubLifetimeManager<>));
services.AddSingleton(typeof(IHubProtocolResolver), typeof(DefaultHubProtocolResolver));
services.AddSingleton(typeof(IHubContext<>), typeof(HubContext<>));
services.AddSingleton(typeof(HubEndPoint<>), typeof(HubEndPoint<>));
services.AddScoped(typeof(IHubActivator<>), typeof(DefaultHubActivator<>));
services.AddAuthorization();
return new SignalRBuilder(services);
}
我正在尝试在我的 aspnet core 2.1 中配置 SignalR project.In Startup.cs class,在 ConfigureServices() 方法中有 2 个选项可供使用。
services.AddSignalR()
services.AddSignalRCore()
这两种方法有什么区别?
我可以轻松地通过 services.AddSignalR()
使用 signalR,但是当我将其更改为 services.AddSignalRCore()
时,它会引发错误。
AddSignalR()
比 AddSignalRCore()
调用了两个额外的服务,如下所示:
这里是AddSignalR()
方法的代码:
public static ISignalRBuilder AddSignalR(this IServiceCollection services, Action<HubOptions> configure)
{
services.Configure(configure);
services.AddSockets();
return services.AddSignalRCore();
}
这里是AddSignalRCore()
方法的代码:
public static ISignalRBuilder AddSignalRCore(this IServiceCollection services)
{
services.AddSingleton(typeof(HubLifetimeManager<>), typeof(DefaultHubLifetimeManager<>));
services.AddSingleton(typeof(IHubProtocolResolver), typeof(DefaultHubProtocolResolver));
services.AddSingleton(typeof(IHubContext<>), typeof(HubContext<>));
services.AddSingleton(typeof(HubEndPoint<>), typeof(HubEndPoint<>));
services.AddScoped(typeof(IHubActivator<>), typeof(DefaultHubActivator<>));
services.AddAuthorization();
return new SignalRBuilder(services);
}