/// <summary> /// Creates a new instance of RabbitBus /// </summary> /// <param name="hostName"> /// The RabbitMQ broker. /// </param> /// <param name="hostPort"> /// The RabbitMQ broker port. /// </param> /// <param name="virtualHost"> /// The RabbitMQ virtualHost. /// </param> /// <param name="username"> /// The username to use to connect to the RabbitMQ broker. /// </param> /// <param name="password"> /// The password to use to connect to the RabbitMQ broker. /// </param> /// <param name="requestedHeartbeat"> /// The initially requested heartbeat interval, in seconds; zero for none. /// </param> /// <param name="registerServices"> /// Override default services. For example, to override the default IEasyNetQLogger: /// RabbitHutch.CreateBus("host=localhost", x => x.Register<IEasyNetQLogger>(_ => myLogger)); /// </param> /// <returns> /// A new RabbitBus instance. /// </returns> public static IBus CreateBus( string hostName, ushort hostPort, string virtualHost, string username, string password, ushort requestedHeartbeat, Action <IServiceRegister> registerServices) { Preconditions.CheckNotNull(hostName, "hostName"); Preconditions.CheckNotNull(virtualHost, "virtualHost"); Preconditions.CheckNotNull(username, "username"); Preconditions.CheckNotNull(password, "password"); Preconditions.CheckNotNull(registerServices, "registerServices"); var connectionConfiguration = new ConnectionConfiguration { Hosts = new List <IHostConfiguration> { new HostConfiguration { Host = hostName, Port = hostPort } }, Port = hostPort, VirtualHost = virtualHost, UserName = username, Password = password, RequestedHeartbeat = requestedHeartbeat }; connectionConfiguration.Validate(); return(CreateBus(connectionConfiguration, registerServices)); }
/// <summary> /// Creates a new instance of <see cref="RabbitBus"/>. /// </summary> /// <param name="connectionConfiguration"> /// An <see cref="ConnectionConfiguration"/> instance. /// </param> /// <param name="advancedBusEventHandlers"> /// An <see cref="AdvancedBusEventHandlers"/> instance which is used to add handlers /// to the events of the newly created <see cref="IBus.Advanced"/>. /// As <see cref="RabbitAdvancedBus"/> attempts to connect during instantiation, specifying a <see cref="AdvancedBusEventHandlers"/> /// before instantiation is the only way to catch the first <see cref="AdvancedBusEventHandlers.Connected"/> event. /// </param> /// <param name="registerServices"> /// Override default services. For example, to override the default <see cref="IEasyNetQLogger"/>: /// RabbitHutch.CreateBus("host=localhost", x => x.Register{IEasyNetQLogger}(_ => myLogger)); /// </param> /// <returns> /// A new <see cref="RabbitBus"/> instance. /// </returns> public static IBus CreateBus(ConnectionConfiguration connectionConfiguration, AdvancedBusEventHandlers advancedBusEventHandlers, Action<IServiceRegister> registerServices) { Preconditions.CheckNotNull(connectionConfiguration, "connectionConfiguration"); Preconditions.CheckNotNull(advancedBusEventHandlers, "advancedBusEventHandlers"); 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?"); } connectionConfiguration.Validate(); container.Register(_ => connectionConfiguration); container.Register(_ => advancedBusEventHandlers); registerServices(container); ComponentRegistration.RegisterServices(container); return container.Resolve<IBus>(); }
/// <summary> /// Creates a new instance of RabbitBus /// </summary> /// <param name="hostName"> /// The RabbitMQ broker. /// </param> /// <param name="hostPort"> /// The RabbitMQ broker port. /// </param> /// <param name="virtualHost"> /// The RabbitMQ virtualHost. /// </param> /// <param name="username"> /// The username to use to connect to the RabbitMQ broker. /// </param> /// <param name="password"> /// The password to use to connect to the RabbitMQ broker. /// </param> /// <param name="requestedHeartbeat"> /// The initially requested heartbeat interval, in seconds; zero for none. /// </param> /// <param name="registerServices"> /// Override default services. For example, to override the default IEasyNetQLogger: /// RabbitHutch.CreateBus("host=localhost", x => x.Register<IEasyNetQLogger>(_ => myLogger)); /// </param> /// <returns> /// A new RabbitBus instance. /// </returns> public static IBus CreateBus( string hostName, ushort hostPort, string virtualHost, string username, string password, ushort requestedHeartbeat, Action<IServiceRegister> registerServices) { Preconditions.CheckNotNull(hostName, "hostName"); Preconditions.CheckNotNull(virtualHost, "virtualHost"); Preconditions.CheckNotNull(username, "username"); Preconditions.CheckNotNull(password, "password"); Preconditions.CheckNotNull(registerServices, "registerServices"); var connectionConfiguration = new ConnectionConfiguration { Hosts = new List<IHostConfiguration> { new HostConfiguration { Host = hostName, Port = hostPort } }, Port = hostPort, VirtualHost = virtualHost, UserName = username, Password = password, RequestedHeartbeat = requestedHeartbeat }; connectionConfiguration.Validate(); return CreateBus(connectionConfiguration, registerServices); }
/// <summary> /// Creates a new instance of <see cref="RabbitBus"/>. /// </summary> /// <param name="connectionConfiguration"> /// An <see cref="ConnectionConfiguration"/> instance. /// </param> /// <param name="advancedBusEventHandlers"> /// An <see cref="AdvancedBusEventHandlers"/> instance which is used to add handlers /// to the events of the newly created <see cref="IBus.Advanced"/>. /// As <see cref="RabbitAdvancedBus"/> attempts to connect during instantiation, specifying a <see cref="AdvancedBusEventHandlers"/> /// before instantiation is the only way to catch the first <see cref="AdvancedBusEventHandlers.Connected"/> event. /// </param> /// <param name="registerServices"> /// Override default services. For example, to override the default <see cref="IEasyNetQLogger"/>: /// RabbitHutch.CreateBus("host=localhost", x => x.Register{IEasyNetQLogger}(_ => myLogger)); /// </param> /// <returns> /// A new <see cref="RabbitBus"/> instance. /// </returns> public static IBus CreateBus(ConnectionConfiguration connectionConfiguration, AdvancedBusEventHandlers advancedBusEventHandlers, Action<IServiceRegister> registerServices) { Preconditions.CheckNotNull(connectionConfiguration, "connectionConfiguration"); Preconditions.CheckNotNull(advancedBusEventHandlers, "advancedBusEventHandlers"); 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?"); } connectionConfiguration.Validate(); container.Register(_ => connectionConfiguration); container.Register(_ => advancedBusEventHandlers); registerServices(container); ComponentRegistration.RegisterServices(container); return container.Resolve<IBus>(); }