我有一个MySettings类,我想将其配置为“选项”以通过依赖项注入使其可用。
我目前正在(使用服务构建器扩展方法):
services.Configure<MySettings>(configuration.GetSection(MySettings.CustomSectionName));
我的问题是设置的一部分来自应用程序设置,而其他值仅在运行时(启动)才知道。
因此,我尝试找出如何通过添加运行时提供的值来配置设置。我试图将值添加到配置
configuration["SectionName:ValueX"] = "my runtime value";
那是行不通的,ValueX始终为null(将选项注入到控制器中时)。
对我有什么建议吗?
答案 0 :(得分:0)
您可以尝试注册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);
}