代码之家  ›  专栏  ›  技术社区  ›  Jason N. Gaylord

重载更改不工作。净核心2

  •  2
  • Jason N. Gaylord  · 技术社区  · 7 年前

    我有一个ASP。在netcore2下运行的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();
    

    然而,在控制器的ActionFilter中,我试图这样抓住它:

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
    
        var options = filterContext.HttpContext.RequestServices.GetService(typeof(IOptions<MySettings>));
    
        /// Do something with the options.
    }
    

    这些选项似乎仍然与应用程序启动时存在的选项相同。知道他们为什么不重新加载吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Nick Albrecht    7 年前

    使用 IOptionsSnapshot<> 如果您需要它对配置中的更改做出响应