public static void RunApiWorker <TWorker>(RunApiWorkerParams runApiWorkerParams) where TWorker : class, IHostedService { ConfigureLogger.StandardSetup(logLevel: runApiWorkerParams.LogLevel); Host.CreateDefaultBuilder(runApiWorkerParams.Args) .UseSystemd() .ConfigureServices((hostContext, services) => { runApiWorkerParams.IocDelegate(hostContext, null, services); services.AddSingleton(provider => runApiWorkerParams.ListenerInfo); services.AddSingleton(provider => runApiWorkerParams.IocDelegate); services.AddSingleton(provider => runApiWorkerParams.WebAppBuilderDelegate); services.AddHostedService <TWorker>(); }) .Build().Run(); }