private static IServiceProvider Bootstrap() { IServiceCollection serviceCollection = new ServiceCollection(); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false, true); IConfiguration configuration = builder.Build(); serviceCollection.AddSingleton(configuration); serviceCollection.AddLogging(); serviceCollection.RegisterDefaultCommandBus(); serviceCollection.RegisterDefaulDomainEventBus(); serviceCollection.RegisterDefaultQueryProcessor(); serviceCollection.LoadModule <DomainModule>(); serviceCollection.LoadModule <DomainDataModule>(configuration); serviceCollection.LoadModule <ReadModelModule>(configuration); var serviceProvider = serviceCollection.BuildServiceProvider(); serviceProvider.GetService <ILoggerFactory>().AddConsole(); var domainEventBus = serviceProvider.GetRequiredService <IDomainEventBus>(); DomainModule.RegisterSubscriptions(domainEventBus); ReadModelModule.RegisterSubscriptions(domainEventBus); return(serviceProvider); }