C# 使用特定于环境的appsettings.json文件时,是否有办法根据设置替换而不是添加到?

C# 使用特定于环境的appsettings.json文件时,是否有办法根据设置替换而不是添加到?,c#,.net-core,.net-core-configuration,C#,.net Core,.net Core Configuration,我发现,当使用和使用多个appsettings.json文件设置控制台应用程序时,后一个文件的内容会覆盖内存中早期文件的内容(注册方面),但不会替换它 让我解释一下,我将在下面发布复制这一点的代码,但首先是两个json文件: appsettings.json,首先加载 { "Folders": [ "main-1", "main-2" ] } appsettings.debug.json,第二次加载 { "Folders": [

我发现,当使用和使用多个
appsettings.json
文件设置控制台应用程序时,后一个文件的内容会覆盖内存中早期文件的内容(注册方面),但不会替换它

让我解释一下,我将在下面发布复制这一点的代码,但首先是两个json文件:

  • appsettings.json
    ,首先加载

    {
        "Folders": [
            "main-1",
            "main-2"
        ]
    }
    
  • appsettings.debug.json
    ,第二次加载

    {
        "Folders": [
            "debug-1"
        ]
    }
    
当将其加载到options对象中时,我希望调试设置优先,它确实优先,但它只是替换了主配置文件的第一个元素

让我换一种说法。我将配置文件加载到此类中:

internal class Options
{
    public List<string> Folders { get; } = new List<string>();
}
该程序的输出如下:

debug-1
main-2
我希望它只包含
“debug-1”
。我可以在加载配置文件时指定一些使其行为类似于此的内容吗

这是一个.NET Core 2.1控制台应用程序,我必须添加以下软件包:

  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Json
  • Microsoft.Extensions.Configuration.Binder
debug-1
main-2