Reputation: 8755
In two projects (a .NET Core Web API and a .NET Core WindowsService) I am using appsettings.json for the configuration.
var configuration = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
In both I have the reloadOnChange set to true and using it as injected IOptions
via dependency injection. Within the web api into the controller classes and within the service into the classes that use the settings.
Unfortunatly I experience that the values do not change when the appsettings.json changes.
On the web api I created a controller to just return a string value from the config and this stays the same as on startup.
So my questions:
Upvotes: 27
Views: 18438
Reputation: 3416
Assuming you are using .net-core 1.1 (because reloadOnChange
is only supported in ASP.NET Core 1.1 and higher) it's actually IOptionsSnapshot
you want (cf.
Configuration in ASP.NET Core - IOptionsSnapshot) rather than just IOptions
.
Upvotes: 12