public EventBusRabbitMQ( EventBusConfiguration configuration, EventBusRabbitMQConfiguration rabbitmqConfiguration, EventBusRabbitMQConnection eventBusConnection, EventBusRabbitMQRetryConsumerStrategy retryConsumerStrategy, EventBusManager manager, ILogger <EventBusRabbitMQ> logger) { _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _rabbitmqConfiguration = rabbitmqConfiguration ?? throw new ArgumentNullException(nameof(rabbitmqConfiguration)); _exchangeName = rabbitmqConfiguration.ExchangeName; _queueName = rabbitmqConfiguration.QueueName; _eventBusConnection = eventBusConnection ?? throw new ArgumentNullException(nameof(eventBusConnection)); _manager = manager ?? throw new ArgumentNullException(nameof(manager)); _retryConsumerStrategy = retryConsumerStrategy ?? throw new ArgumentNullException(nameof(retryConsumerStrategy)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); using (var channel = _eventBusConnection.CreateModel()) { channel.ExchangeDeclare( exchange: _exchangeName, type: ExchangeType.Direct, arguments: new Dictionary <string, object>() { { "x-dead-letter-exchange", $"{_exchangeName}{_configuration.FailSuffix}" } }); } }
public EventBusRabbitMQConnectionFactory( EventBusRabbitMQConfiguration configuration) { _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); HostName = _configuration.HostName; Port = _configuration.Port; VirtualHost = _configuration.VirtualHost; UserName = _configuration.UserName; Password = _configuration.Password; DispatchConsumersAsync = true; }