public static IHostBuilder CreateHostBuilder(string[] args, FtpUploaderOptions options) => Host.CreateDefaultBuilder(args) .ConfigureLogging(loggingBuilder => { loggingBuilder.ClearProviders(); #if DEBUG loggingBuilder.AddConsole(); loggingBuilder.AddDebug(); #endif loggingBuilder.AddEventLog(eventLogSettings => { eventLogSettings.SourceName = "Ftp Sync Service"; }); }) .ConfigureServices((hostContext, services) => { services.AddSingleton <FtpUploaderOptions>(options); services.AddScoped(sp => { return(new FtpClient(options.Host, options.Port, options.User, options.Password)); }); services.AddHostedService <FtpUploaderService>(); }) .UseWindowsService();
public FtpUploaderService(FtpUploaderOptions options, ILogger <FtpUploaderService> logger, IServiceScopeFactory serviceScopeFactory) { _options = options; _logger = logger; _serviceScopeFactory = serviceScopeFactory; }