/// <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))); }
/// <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 }); })); }