Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }