diff --git a/src/Paralax.MessageBrokers.RabbitMQ/src/Paralax.MessageBrokers.RabbitMQ/Extensions.cs b/src/Paralax.MessageBrokers.RabbitMQ/src/Paralax.MessageBrokers.RabbitMQ/Extensions.cs index 7592a8b..fddb381 100644 --- a/src/Paralax.MessageBrokers.RabbitMQ/src/Paralax.MessageBrokers.RabbitMQ/Extensions.cs +++ b/src/Paralax.MessageBrokers.RabbitMQ/src/Paralax.MessageBrokers.RabbitMQ/Extensions.cs @@ -75,6 +75,13 @@ public static IParalaxBuilder AddRabbitMq(this IParalaxBuilder builder, string s builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddHostedService(); + builder.AddInitializer(); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); @@ -108,12 +115,7 @@ public static IParalaxBuilder AddRabbitMq(this IParalaxBuilder builder, string s } // Register other services that need to be shared - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - builder.Services.AddSingleton(); - builder.Services.AddTransient(); - builder.Services.AddHostedService(); - builder.AddInitializer(); + return builder; } @@ -202,9 +204,13 @@ public static IBusSubscriber UseRabbitMq(this IApplicationBuilder app) { var messageSubscribersChannel = app.ApplicationServices.GetRequiredService(); - // Get all RabbitMQ clients and inject them into RabbitMqSubscriber var clients = app.ApplicationServices.GetServices(); + if (!clients.Any()) + { + throw new InvalidOperationException("No RabbitMQ clients have been registered."); + } + return new RabbitMqSubscriber(clients, messageSubscribersChannel); } }