我正在尝试在我的aspnet core 2.1项目中配置SignalR。在Startup.cs类中,在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);
}
关于asp.net-core - aspnet core 2.1中AddSignalR和AddSignalRCore扩展方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53985371/