【问题标题】:Pass configuration to IHostedService将配置传递给 IHostedService
【发布时间】:2019-04-26 18:54:46
【问题描述】:

我正在尝试将配置值添加到 IHostedService,但不知道如何。

这是我目前拥有的:

启动

services.Configure<MyOptions>(Configuration.GetSection("MyOptions"));
services.AddHostedService<MyHostedService>();

我的选项

public class MyOptions
{
    public string MyOption{ get; set; }
}

应用设置

"MyOptions": {
  "MyOption": "42"
}

我的托管服务

public MyHostedService(ILogger<MyHostedService> logger)
{
    _logger = logger;
    // Where are my options?! :(
}

【问题讨论】:

    标签: c# .net-core


    【解决方案1】:

    你快到了。你只剩下一件事要做:

    只需在您的IHostedService 中使用constructor dependency injectionIOptions&lt;MyOptions&gt; 或相关(取决于您的场景):

    public MyHostedService(ILogger<MyHostedService> logger, IOptions<MyOptions> optionsAccessor)
    {
        _logger = logger;
        _options = optionsAccessor.Value;
    }
    

    详情请见Options pattern in ASP.NET Core

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 2014-05-07
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多