public static void ConfigureWebHostStackApp(this ISImplHostBuilder hostBuilder, Action <IWebHostBuilder> configureDelegate)
        {
            // Configure Generic host
            var startupConfiguration   = new WebHostStartupConfiguration();
            var applicationHostBuilder = new WebHostBuilder(startupConfiguration);

            configureDelegate?.Invoke(applicationHostBuilder);

            // Get startup and application builder
            var startup = startupConfiguration.GetConfiguredStartup();
            var stackApplicationBuilder = RuntimeServices.Current.BootContainer.New <WebHostApplicationBuilder>();

            // attach application
            hostBuilder.AttachNewOrGetConfiguredModule(() => new WebHostStackApplicationModule(stackApplicationBuilder, startup.ConfigureStackApplication, startup.ConfigureServices));
        }
        public static ISImplHostBuilder ConfigureWebHostStackApp(this ISImplHostBuilder hostBuilder, Action <IWebHostBuilder> configureDelegate = null)
        {
            // Configure Generic host
            var startupConfiguration   = new WebHostStartupConfiguration();
            var applicationHostBuilder = RuntimeServices.Current.BootContainer.New <WebHostBuilder>(new Dictionary <Type, object>
            {
                [typeof(WebHostStartupConfiguration)] = startupConfiguration
            });

            configureDelegate?.Invoke(applicationHostBuilder);

            // Get startup and application builder
            var startup = startupConfiguration.GetConfiguredStartup();
            var stackApplicationBuilder = RuntimeServices.Current.BootContainer.New <WebHostApplicationBuilder>();

            // attach application
            hostBuilder.AttachNewOrGetConfiguredModule(() => new WebHostStackApplicationModule(stackApplicationBuilder, startup.ConfigureStackApplication, startup.ConfigureServices));

            return(hostBuilder);
        }