public static ContainerBuilder RegisterSignalr(this ContainerBuilder containerBuilder) { if (containerBuilder == null) { throw new ArgumentNullException(nameof(containerBuilder)); } containerBuilder.Register(c => { HttpMessageHandler authenticatedHttpMessageHandler = c.ResolveNamed <HttpMessageHandler>(ContractKeys.AuthenticatedHttpMessageHandler); SignalRHttpClient signalRHttpClient = new SignalRHttpClient(authenticatedHttpMessageHandler); return(signalRHttpClient); }).SingleInstance(); containerBuilder.RegisterType <SignalrMessageReceiver>().PropertiesAutowired(PropertyWiringOptions.PreserveSetValues) .As <IMessageReceiver>().SingleInstance(); return(containerBuilder); }
public static IDependencyManager RegisterSignalr(this IDependencyManager dependencyManager) { if (dependencyManager == null) { throw new ArgumentNullException(nameof(dependencyManager)); } dependencyManager.GetContainerBuilder().Register(context => new ISignalRHttpClientFactory(httpMessageHandler => DefaultSignalRFactories.SignalRHttpClientFactory(httpMessageHandler))); dependencyManager.RegisterUsing(context => new IHubConnectionFactory(clientAppProfile => DefaultSignalRFactories.IHubConnectionFactory(clientAppProfile)), lifeCycle: DependencyLifeCycle.Transient, overwriteExisting: false); dependencyManager.RegisterUsing(context => new IClientTransportFactory(signalRHttpClient => DefaultSignalRFactories.IClientTransportFactory(signalRHttpClient)), lifeCycle: DependencyLifeCycle.Transient, overwriteExisting: false); dependencyManager.RegisterUsing(resolve => { HttpMessageHandler authenticatedHttpMessageHandler = resolve.Resolve <HttpMessageHandler>(name: ContractKeys.AuthenticatedHttpMessageHandler); SignalRHttpClient signalRHttpClient = resolve.Resolve <ISignalRHttpClientFactory>()(authenticatedHttpMessageHandler); return(signalRHttpClient); }, lifeCycle: DependencyLifeCycle.SingleInstance, overwriteExisting: false); dependencyManager.Register <IMessageReceiver, SignalrMessageReceiver>(lifeCycle: DependencyLifeCycle.SingleInstance, overwriteExisting: false); return(dependencyManager); }