public static EndpointConfiguration AddNServiceBus(this IServiceCollection services, IConfiguration Configuration) { var settings = new BusSettingsModel(); Configuration.Bind("NServiceBus", settings); var endpointConfiguration = new EndpointConfiguration(settings.RabbitEndPoint.Name); var transport = endpointConfiguration.UseTransport <RabbitMQTransport>(); transport.ConnectionString(settings.ConnectionString); transport.UsePublisherConfirms(true); transport.UseDirectRoutingTopology(); var routing = transport.Routing(); ConfigureRouting(routing); endpointConfiguration.EnableInstallers(); endpointConfiguration.EnableCallbacks(); endpointConfiguration.MakeInstanceUniquelyAddressable("response-queue"); endpointConfiguration.UseSerialization <NewtonsoftSerializer>(); endpointConfiguration.UsePersistence <InMemoryPersistence>(); endpointConfiguration.SendFailedMessagesTo(settings.RabbitEndPoint.ErrorQueue); return(endpointConfiguration); }
public static IServiceCollection AddNServiceBus(this IServiceCollection services, IConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var settings = new BusSettingsModel(); configuration.Bind("NServiceBus", settings); var endpointConfiguration = new EndpointConfiguration(settings.RabbitEndPoint.Name); var transport = endpointConfiguration.UseTransport <RabbitMQTransport>(); string connectionString = settings.ConnectionString; transport.ConnectionString(connectionString); transport.UsePublisherConfirms(true); transport.UseDirectRoutingTopology(); endpointConfiguration.EnableInstallers(); endpointConfiguration.UseSerialization <NewtonsoftSerializer>(); endpointConfiguration.UsePersistence <InMemoryPersistence>(); endpointConfiguration.SendFailedMessagesTo(settings.RabbitEndPoint.ErrorQueue); return(services.AddNServiceBus(endpointConfiguration)); }
public static async Task Main(string[] args) { Console.Title = "DeviceEnactor.Host"; var host = new HostBuilder() .ConfigureHostConfiguration(configHost => { configHost.SetBasePath(Directory.GetCurrentDirectory()); configHost.AddCommandLine(args); }) .ConfigureAppConfiguration((hostContext, configApp) => { configApp.AddJsonFile("appsettings.json", optional: true); configApp.AddCommandLine(args); }) .ConfigureServices((hostContext, services) => { ReadSettings(hostContext.Configuration, services); services.AddHostedService <LifetimeEventsHostedService>(); var busSettings = new BusSettingsModel(); hostContext.Configuration.Bind("NServiceBus", busSettings); services.AddNServiceBus(busSettings); services.AddSingleton <MqttNetLoggerWrapper>(); services.AddSingleton <CustomMqttFactory>(); services.AddSingleton <MqttClientService>(); services.AddSingleton <MqttApplicationMessageReceivedHandler>(); services.AddSingleton <MqttClientConnectedHandler>(); services.AddSingleton <Dictionary <string, IMqttMessageProcessor> >(); services.AddSingleton <MqttReceiverMessageFactory>(); }) .ConfigureLogging((hostContext, configLogging) => { configLogging.AddConsole(); }) .UseConsoleLifetime() .Build(); await host.Services.GetService <MqttClientService>().Configure(); await host.RunAsync(); }