在Azure Web应用程序设置中使用数组

Ken*_*sen 21 azure azure-web-sites asp.net-core

在我的ASP.NET 5(RC1)代码中,我有一个appsetting.json,看起来像这样:

{
    "SomeSettings": {
        "PropA": "ValueA",
        "PropB": [
            "ValueB1",
            "ValueB2"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的开发机器上运行代码时使用这些值(即localhost).如果我想覆盖wep应用程序的Azure应用程序设置中的"SomeSettings",我将如何指定"PropB"数组?

我想要存储信息的SomeSettings.cs类如下所示:

public class SomeSettings
{
    public string PropA { get; set; }
    public List<string> PropB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题是"PropB" - 如何在Azure中将数组或List指定为字符串 - 这是否可能?

在我的Startup类的构造函数中,我有:

var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddEnvironmentVariables();
Run Code Online (Sandbox Code Playgroud)

在我的Startup类的配置方法中,我有:

var someSettings = configuration.GetSection("SomeSettings").Get<SomeSettings>();
Run Code Online (Sandbox Code Playgroud)

Ken*_*sen 54

像这样在"应用程序设置"下添加设置就可以了.请注意下面的":0"和":1"

格式:键 - >值

SomeSettings:PropA -> AzureValueA
SomeSettings:PropB:0 -> AzureValueB1
SomeSettings:PropB:1 -> AzureValueB2
Run Code Online (Sandbox Code Playgroud)

  • 只是想补充一点,如果您不是在Windows上运行,或者需要跨平台支持,则必须用双下划线(__)代替冒号(:):`SomeSetting__PropB__0`。 (5认同)
  • 您知道如何将“SomeSettings__PropB”表示为空数组吗? (5认同)
  • 截至今天,它运作良好。只是想确认方法仍然在这里。我们使用 VSTS 通过 PS 脚本部署 WebApp 参数,现在我们可以推送数组。谢谢。 (2认同)