static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddCore(hostContext.Configuration) .AddOrder(hostContext.Configuration); EasyNetQSettings easyNetQSettings = new EasyNetQSettings(); hostContext.Configuration.GetSection(nameof(EasyNetQSettings)).Bind(easyNetQSettings); services.AddSingleton(easyNetQSettings); var bus = RabbitHutch.CreateBus(easyNetQSettings.Uri); services.AddSingleton(bus); services.AddSingleton <MessageDispatcher>(); services.AddSingleton(_ => { return(new AutoSubscriber(_.GetRequiredService <IBus>(), Assembly.GetExecutingAssembly().GetName().Name) { AutoSubscriberMessageDispatcher = _.GetRequiredService <MessageDispatcher>() }); }); services.AddScoped <OrderCompletedConsumer>(); services.AddScoped <OrderFailedConsumer>(); services.AddHostedService <ConsumeService>(); });
public static IServiceCollection AddServices(this IServiceCollection services, IConfiguration configuration) { services.AddMediatR(Assembly.GetExecutingAssembly()); EasyNetQSettings easyNetQSettings = new EasyNetQSettings(); configuration.GetSection(nameof(EasyNetQSettings)).Bind(easyNetQSettings); services.AddSingleton(easyNetQSettings); var bus = RabbitHutch.CreateBus(easyNetQSettings.Uri); services.AddSingleton(bus); return(services); }