我正在编写一个 .Net Core Windows 服务,下面是一段代码:
internal static class Program
{
public static async Task Main(string[] args)
{
var isService = !(Debugger.IsAttached || args.Contains("--console"));
var builder = new HostBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<IntegrationService>();
});
if (isService)
{
await builder.RunAsServiceAsync();
}
else
{
await builder.RunConsoleAsync();
}
}
}
我想将一些参数传递给我的服务,即IntegrationService
- 我如何向我的服务发送参数?
Joelius 对 .Net Core 3 的回答的小更新
给定一个带有此构造函数混合参数的 HostedService (TimeSpan
)和服务(ILogger<StatusService>
, IHttpClientFactory
)
public StatusService(
TimeSpan cachePeriod,
ILogger<StatusService> logger,
IHttpClientFactory clientFactory)
您可以在 Startup.cs 中将其添加到 HostedService 中,如下所示:
services.AddHostedService
(serviceProvider =>
new StatusService(
TimeSpan.FromDays(1),
serviceProvider.GetService<ILogger<StatusService>>(),
serviceProvider.GetService<IHttpClientFactory>()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)