Я пытаюсь настроить DI для реализации EventBusRabbitMQ.Это прекрасно работает для одного обмена, очереди ..
services.AddSingleton<IEventBus, EventBusRabbitMQ>(serviceProvider =>
{
...
return new EventBusRabbitMQ(connection, "exchange_EX1", "queue_Q1",..);
});
и в конфигурации приложения
var eventBus = app.ApplicationServices.GetRequiredService<IEventBus>();
eventBus.Subscribe<FooEvent, FooEventHandler>;
Я хочу зарегистрировать несколько реализаций с различными конфигурациями EventBusRabbitMQ, чтобы я мог выбратьи выберите, какой обмен и очередь выбрать для назначения, когда я решу для IEventBus.
Чего я не хочу, так это быть явным о реализациях, поскольку единственное, что отличается, это только обмен и очередь.
services.AddSingleton<IEventBus, EventBusRabbitMQ_EX1_Q1>
services.AddSingleton<IEventBus, EventBusRabbitMQ_EX2_Q2>
Какие у меня есть альтернативы?