Я настраиваю конфигурацию следующим образом:
Код: Выделить всё
public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources
var builder = new ConfigurationBuilder()
.AddJsonFile("config.json")
.AddJsonFile($"config.{env.EnvironmentName}.json");
Configuration = builder.Build()
.ReloadOnChanged("config.json")
.ReloadOnChanged($"config.{env.EnvironmentName}.json");
/* ... (unrelated stuff edited away) ... */
}
Код: Выделить всё
public void ConfigureServices(IServiceCollection services)
{
/* ... (unrelated stuff edited away) ... */
services.AddOptions();
services.AddInstance(Configuration);
services.Configure(Configuration.GetSection("AppSettings"));
services.Configure(Configuration.GetSection("DbSettings"));
/* ... (unrelated stuff edited away) ... */
}
Код: Выделить всё
{
"AppSettings": {
"This": "that",
"Foo": "bar"
/* etc... */
},
"DbSettings": {
/* (db settings here) */
}
}
Код: Выделить всё
public class AppSettings
{
public string This { get; set; }
public string Foo { get; set; }
/* etc... */
}
Итак, вопрос заключается в следующем: как сделать строго типизированный экземпляр изменение конфигурации при изменении файла .json без перезапуска веб-приложения?
Подробнее здесь: https://stackoverflow.com/questions/361 ... -on-change