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

时间:2015-12-03 10:13:07

标签: azure asp.net-core azure-web-sites

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

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

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

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

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

问题是“PropB” - 如何在Azure中将数组或List指定为字符串 - 这甚至可能吗?

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

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

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

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

2 个答案:

答案 0 :(得分:43)

像这样添加“应用程序设置”下的设置就可以了! 注意

下面的“:0”和“:1”

格式:密钥 - &gt;值

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

答案 1 :(得分:-3)

简单的方法是将JSON作为字符串存储在AppSetting中,并自行反序列化

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

或者你必须创建自己的客户配置我相信。 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx