Beispiel #1
0
        public static IHostBuilder Boot(IHostBuilder hostBuilder, string[] args, ILogger logger, Action <ISImplHostBuilder> configureDelegate)
        {
            var diagnostics = DiagnosticsCollector.Create();

            // Write welcome to console
            ConsoleWriteNameAndVersion();

            // Parse command line arguments
            var flags = ParseArgs(args);

            // Init boot container
            var bootContainer = InitBootContainer(hostBuilder, logger ?? CreateLogger(), flags, diagnostics);

            // Init runtime services
            RuntimeServices.Init(bootContainer.Resolve <IRuntimeServices>());

            // Create .NET Stack host builder
            var dotNetStackHostBuilder = bootContainer.Resolve <ISImplHostBuilder>();

            // Start configuration of the host builder
            dotNetStackHostBuilder.Configure(dotNetStackHostBuilder, stack =>
            {
                // Pre-installed module
                stack.Use(() => new StackRuntimeModule(bootContainer));
                // Installed modules
                configureDelegate?.Invoke(stack);
            });

            return(dotNetStackHostBuilder);
        }