public static IHostBuilder UseServiceBaseLifetime(this IHostBuilder hostBuilder) { return(hostBuilder .ConfigureAppConfiguration((hostContext, config) => { config.AddEnvironmentVariables("ADSync_"); }) .ConfigureServices((hostContext, services) => { services.AddSingleton <IHostLifetime, ServiceBaseLifetime>(); WorkerService.ConfigurarDependencias(hostContext.Configuration, services, true); WorkerService.Configurar(hostContext.Configuration, services); })); }
static async Task Main(string[] args) { var asService = !(Debugger.IsAttached || args.Contains("--console")); IHostBuilder builder; if (asService) { builder = new HostBuilder() .ConfigureServices((hostContext, services) => { services.AddHostedService <WorkerService>(); }); } else { builder = new HostBuilder() .ConfigureAppConfiguration((hostContext, config) => { config.AddEnvironmentVariables("ADSync_"); }) .ConfigureServices((hostContext, services) => { services.AddHostedService <WorkerService>(); WorkerService.ConfigurarDependencias(hostContext.Configuration, services); WorkerService.Configurar(hostContext.Configuration, services); }); } builder.UseEnvironment(asService ? Environments.Production : Environments.Development); if (asService) { await builder.RunAsServiceAsync(); } else { await builder.RunConsoleAsync(); } }