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

Using an array in Azure web app settings

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

{
    "SomeSettings": {
        "PropA": "ValueA",
        "PropB": [
            "ValueB1",
            "ValueB2"
        ]
    }
}

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

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

public class SomeSettings
{
    public string PropA { get; set; }
    public List<string> PropB { get; set; }
}

问题是 "PropB" - 我如何在 Azure 中将数组或列表指定为字符串 - 这甚至可能吗?

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

var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddEnvironmentVariables();

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

var someSettings = configuration.GetSection("SomeSettings").Get<SomeSettings>();

像这样在 "App settings" 下添加设置就可以了... 注意下面的“:0”和“:1”

格式:键 -> 值

SomeSettings:PropA -> AzureValueA
SomeSettings:PropB:0 -> AzureValueB1
SomeSettings:PropB:1 -> AzureValueB2

如果您 运行 不在 Windows 上,请将冒号 : 替换为双下划线 __ 以使您的应用程序看到这些设置。所以而不是例如SomeSettings:PropA,你会使用 SomeSettings__PropA.

简单的做法是将JSON作为字符串存入AppSetting,自己反序列化

var serializer = new JavaScriptSerializer();
var settings = serializer.Deserialize<SomeSettings>(configuration.GetSection("SomeSettings"));

否则我相信您将不得不创建自己的客户配置。 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx