void StartExchange(RabbitMqExchange exchange) { _channel.ExchangeDeclare( exchange: exchange.Name, type: exchange.Options.Type, durable: exchange.Options.Durable, autoDelete: exchange.Options.AutoDelete, arguments: exchange.Options.Arguments); foreach (var queue in exchange.Options.Queues) { StartQueue(queue, exchange.Name); } }
/// <summary> /// Add exchange as singleton. /// </summary> /// <param name="services">Service collection.</param> /// <param name="exchangeName">Exchange name.</param> /// <param name="options">Exchange configuration <see cref="RabbitMqExchangeOptions"/>.</param> /// <param name="isConsuming">Flag whether an exchange made for consumption.</param> /// <returns>Service collection.</returns> public static IServiceCollection AddExchange(this IServiceCollection services, string exchangeName, bool isConsuming, RabbitMqExchangeOptions options) { CheckExchangeExists(services, exchangeName); var exchangeOptions = options ?? new RabbitMqExchangeOptions(); var exchange = new RabbitMqExchange { Name = exchangeName, IsConsuming = isConsuming, Options = exchangeOptions }; var service = new ExchangeServiceDescriptor(typeof(RabbitMqExchange), exchange) { ExchangeName = exchangeName }; services.Add(service); return(services); }