我有一个在 netcore2 下运行的 ASP.NET Core 2 项目。我正在重写 BuildWebHost 以添加新的 JSON 配置文件,如下所示:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddJsonFile("mysettings.json", optional: false, reloadOnChange: true);
})
.UseStartup<Startup>()
.Build();
但是,在 Controller 的 ActionFilter 中,我尝试像这样抓取它:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var options = filterContext.HttpContext.RequestServices.GetService(typeof(IOptions<MySettings>));
/// Do something with the options.
}
这些选项似乎仍然与应用程序启动时存在的选项相同。知道为什么他们不重新加载吗?
最佳答案
使用IOptionsSnapshot<>
如果您需要它响应配置中的更改
关于asp.net-core - reloadOnChange 在 .NET Core 2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454201/