Различия между методами расширения AddSignalR и AddSignalRCore в ядре aspnet 2.1 - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь настроить SignalR в моем проекте ядра 2.1 для aspnet. В классе Startup.cs в методе ConfigureServices () есть 2 варианта использования.

services.AddSignalR()
services.AddSignalRCore()

В чем различия между этими2 способа?

Мне было легко работать с signalR с services.AddSignalR(), но когда я изменил его на services.AddSignalRCore(), он выдает ошибку.

1 Ответ

0 голосов
/ 31 декабря 2018

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