public static void AddEventBusRabbitMQ(this IServiceCollection services, Action <EventBusRabbitMQOptions> configureOptions) { var options = new EventBusRabbitMQOptions(); configureOptions(options); services.Configure(configureOptions); services.AddSingleton <IRabbitMQPersistentConnection, DefaultRabbitMQPersistentConnection>(); services.AddEventBus <EventBusRabbitMQ>(); }
public EventBusRabbitMQ( IServiceProvider services, IOptions <EventBusRabbitMQOptions> options, IRabbitMQPersistentConnection persistentConnection, ILogger <EventBusRabbitMQ> logger, IEventBusSubscriptionsManager subsManager) { _logger = logger; _services = services; _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _subsManager = subsManager ?? new EventBusSubscriptionsManager(); _options = options.Value; _exchangeType = "direct"; _consumerChannel = CreateConsumerChannel(); _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; }