1

J'ai un projet ASP.NET Core 2 exécuté sous netcore2. Je BuildWebHost primordial d'ajouter dans un nouveau fichier de configuration JSON comme ceci:reloadOnChange ne fonctionne pas dans .NET Core 2

public static IWebHost BuildWebHost(string[] args) => 
    WebHost.CreateDefaultBuilder(args) 
     .ConfigureAppConfiguration((hostingContext, config) => 
     { 
      config.AddJsonFile("mysettings.json", optional: false, reloadOnChange: true); 
     }) 
     .UseStartup<Startup>() 
     .Build(); 

Cependant, dans un ActionFilter pour le contrôleur, je tente de le saisir comme ceci:

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    base.OnActionExecuting(filterContext); 

    var options = filterContext.HttpContext.RequestServices.GetService(typeof(IOptions<MySettings>)); 

    /// Do something with the options. 
} 

Les options semblent toujours être les mêmes options qui existaient lorsque l'application a viré. Une idée de pourquoi ils ne rechargent pas?

Répondre

2

Utilisez IOptionsSnapshot<> si vous avez besoin d'être réactif aux changements dans la configuration