コード例 #1
0
        /// <summary>
        /// Adds a delegate that configures application logging.
        /// </summary>
        public static ICommandLineHostBuilder ConfigureLogging(this ICommandLineHostBuilder builder, Action <ILoggingBuilder> configureLogging)
        {
            if (configureLogging == null)
            {
                throw new ArgumentNullException(nameof(configureLogging));
            }

            return(builder.ConfigureServices(services => services.AddLogging(configureLogging)));
        }
コード例 #2
0
        /// <summary>
        /// Adds a delegate that configures a custom service container.
        /// </summary>
        public static ICommandLineHostBuilder ConfigureContainer <TContainerBuilder>(this ICommandLineHostBuilder builder, Action <TContainerBuilder> configureContainer)
        {
            if (configureContainer == null)
            {
                throw new ArgumentNullException(nameof(configureContainer));
            }

            return(builder.ConfigureServices(services =>
            {
                var startupDescriptor = services.SingleOrDefault(s => s.ImplementationType.IsDelegateStartupType());
                if (startupDescriptor != null)
                {
                    services.Remove(startupDescriptor);
                }

                var startup = startupDescriptor?.ImplementationInstance as IStartup;
                services.AddSingleton <IStartup>(new DelegateStartup <TContainerBuilder>
                {
                    ConfigureApp = b => startup?.Configure(b),
                    ConfigureContainerBuilder = configureContainer
                });
            }));
        }