我有一个MySettings类,我希望将其配置为选项,以便通过依赖注入使其可用。
目前我这样做(在一个服务构建器扩展方法中):
services.Configure<MySettings>(configuration.GetSection(MySettings.CustomSectionName));
我的问题是,其中一部分设置来自应用程序设置,而其他值仅在运行时(启动时)才知道。
因此,我尝试了解如何通过添加运行时提供的值来配置设置。我尝试将值添加到配置中
configuration["SectionName:ValueX"] = "my runtime value";
这不起作用,ValueX总是为空(当选项被注入到控制器中时)。
对我有什么建议吗?
发布于 2019-04-15 07:18:12
您可以尝试注册MySettings
而不是IOptions<MySettings>
,如下所示
public void ConfigureServices(IServiceCollection services)
{
var mySettings = new MySettings();
Configuration.Bind("MySettings", mySettings);
mySettings.Title = "Hello";
services.AddSingleton(mySettings);
}
并像这样使用MySettings
public class HomeController : Controller
{
private readonly MySettings _settings;
public HomeController(MySettings settings)
{
_settings = settings;
}
public IActionResult Index()
{
return Ok(_settings);
}
https://stackoverflow.com/questions/55653232
复制