小编arn*_*tjw的帖子

ASP.NET 5:如何在更改时重新加载强类型配置

我已经能够在 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)

c# asp.net configuration json configuration-files

7
推荐指数
1
解决办法
2703
查看次数

标签 统计

asp.net ×1

c# ×1

configuration ×1

configuration-files ×1

json ×1