/// <summary> /// Use a custom dependency injection container implementing the Microsoft.Extensions.DependencyInjection model. /// The container lifetime will be managed by NServiceBus. /// </summary> /// <param name="configuration">The endpoint configuration.</param> /// <param name="serviceProviderFactory">The <see cref="IServiceProviderFactory{TContainerBuilder}"/> of the container to be used.</param> public static ContainerSettings <TContainerBuilder> UseContainer <TContainerBuilder>(this EndpointConfiguration configuration, IServiceProviderFactory <TContainerBuilder> serviceProviderFactory) { Guard.AgainstNull(nameof(configuration), configuration); Guard.AgainstNull(nameof(serviceProviderFactory), serviceProviderFactory); var containerSettings = new ContainerSettings <TContainerBuilder>(); IContainer containerAdapter = new ContainerAdapter <TContainerBuilder>(serviceProviderFactory, containerSettings); configuration.UseContainer(containerAdapter); return(containerSettings); }
public async Task Start() { try { var endpointConfiguration = new NServiceBus.EndpointConfiguration(EndpointName); //These 2 settings happen for all endpoints endpointConfiguration.DefineCriticalErrorAction(OnCriticalError); endpointConfiguration.UseContainer <StructureMapBuilder>(x => x.ExistingContainer(container)); foreach (var configure in configs) { configure.Configure(endpointConfiguration); } endpoint = await Endpoint.Start(endpointConfiguration); } catch (Exception ex) { FailFast("Failed to start.", ex); } }