public static Task RunBatchEngineWebHosting(this IWebHostBuilder builder, string urls, SwaggerOptions?swaggerOptions = null, IBatchInterceptor?interceptor = null) { return(builder .PrepareBatchEngineMiddleware(interceptor) .ConfigureServices(services => { if (swaggerOptions == null) { // GetEntryAssembly() never returns null when called from managed code. var entryAsm = Assembly.GetEntryAssembly() !; var xmlName = entryAsm.GetName().Name + ".xml"; var xmlPath = Path.Combine(Path.GetDirectoryName(entryAsm.Location) ?? "", xmlName); swaggerOptions = new SwaggerOptions(entryAsm.GetName().Name !, "", "/") { XmlDocumentPath = xmlPath }; } services.AddSingleton <SwaggerOptions>(swaggerOptions); }) .UseKestrel() .UseUrls(urls) .UseStartup <DefaultStartup>() .Build() .RunAsync()); }