我已经能够在 ASP.NET 5 中设置强类型配置,并且它工作得很好。我还将配置设置为在.json配置文件更改时自动重新加载。但这似乎只有在我使用非类型化配置时才有效。.json当文件更改时,强类型配置类仍然保留旧值。
我正在设置这样的配置:
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) ... */
}
Run Code Online (Sandbox Code Playgroud)
并像这样绑定它:
public void ConfigureServices(IServiceCollection services)
{
/* ... (unrelated stuff edited away) ... */
services.AddOptions();
services.AddInstance(Configuration);
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
services.Configure<DbSettings>(Configuration.GetSection("DbSettings"));
/* ... (unrelated stuff edited away) ... */
}
Run Code Online (Sandbox Code Playgroud)
(配置文件如下所示:)
{
"AppSettings": {
"This": "that", …Run Code Online (Sandbox Code Playgroud)