public void AddServices(IServiceCollection services) { var config = new EventBusRabbitMQOptions(); _configure?.Invoke(config); var connectionFactory = new ConnectionFactory { HostName = config.HostName, Port = config.Port, UserName = config.UserName, Password = config.Password, VirtualHost = config.VirtualHost, AutomaticRecoveryEnabled = true }; services.AddSingleton <IRabbitMQPersistentConnection>(sp => new DefaultRabbitMQPersistentConnection(connectionFactory, sp.GetRequiredService <ILogger <DefaultRabbitMQPersistentConnection> >())); services.AddSingleton <IEventBus>(sp => new EventBusRabbitMQ(sp.GetRequiredService <IRabbitMQPersistentConnection>(), sp.GetRequiredService <ILogger <EventBusRabbitMQ> >(), sp.GetRequiredService <IEventBusSubscriptionsManager>(), config.QueueName)); }
public void AddServices(IServiceCollection services) { var config = new EventBusRabbitMQOptions(); _configure?.Invoke(config); var connectionFactory = new ConnectionFactory { HostName = config.HostName, Port = config.Port, UserName = config.UserName, Password = config.Password, VirtualHost = config.VirtualHost, AutomaticRecoveryEnabled = true }; services.AddSingleton <IEventBus>(sp => new RabbitMQEventBus(connectionFactory, sp.GetRequiredService <ILogger <RabbitMQEventBus> >(), sp.GetRequiredService <IEventHandlerExecutionContext>(), config.ExchangeName, queueName: config.QueueName)); }