Exemplo n.º 1
0
        /// <summary>
        /// Creates a new instance of RabbitBus
        /// </summary>
        /// <param name="connectionConfiguration">
        /// An IConnectionConfiguration instance.
        /// </param>
        /// <param name="registerServices">
        /// Override default services. For example, to override the default IEasyNetQLogger:
        /// RabbitHutch.CreateBus("host=localhost", x => x.Register&lt;IEasyNetQLogger&gt;(_ => myLogger));
        /// </param>
        /// <returns></returns>
        public static IBus CreateBus(IConnectionConfiguration connectionConfiguration, Action <IServiceRegister> registerServices)
        {
            Preconditions.CheckNotNull(connectionConfiguration, "connectionConfiguration");
            Preconditions.CheckNotNull(registerServices, "registerServices");

            var container = createContainerInternal();

            if (container == null)
            {
                throw new EasyNetQException("Could not create container. " +
                                            "Have you called SetContainerFactory(...) with a function that returns null?");
            }

            registerServices(container);
            container.Register(_ => connectionConfiguration);
            ComponentRegistration.RegisterServices(container);

            return(container.Resolve <IBus>());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a new instance of RabbitBus
        /// </summary>
        /// <param name="connectionConfiguration">
        /// An IConnectionConfiguration instance.
        /// </param>
        /// <param name="registerServices">
        /// Override default services. For example, to override the default IEasyNetQLogger:
        /// RabbitHutch.CreateBus("host=localhost", x => x.Register&lt;IEasyNetQLogger&gt;(_ => myLogger));
        /// </param>
        /// <returns></returns>
        public static IBus CreateBus(IConnectionConfiguration connectionConfiguration, Action <IServiceRegister> registerServices)
        {
            if (connectionConfiguration == null)
            {
                throw new ArgumentNullException("connectionConfiguration");
            }
            if (registerServices == null)
            {
                throw new ArgumentNullException("registerServices");
            }

            Action <IServiceRegister> registerServices2 = x =>
            {
                x.Register(_ => connectionConfiguration);
                registerServices(x);
            };

            var serviceProvider = ComponentRegistration.CreateServiceProvider(registerServices2);

            return(serviceProvider.Resolve <IBus>());
        }