2015-12-03 34 views
7

在我的ASP.NET 5(RC1)的代碼,我有一個看起來像這樣的appsetting.json:使用Azure中的Web應用程序設置的陣列

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

這些值是指使用時運行的代碼上我的開發機器(即本地主機)。如果我想覆蓋wep應用程序的Azure的應用程序設置中的「SomeSettings」,我將如何指定「PropB」數組?

,我要保存這樣在外觀還是信息的SomeSettings.cs類:

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

的問題是「PROPB」 - 如何我指定一個數組或列表在Azure中的字符串 - 是這甚至有可能嗎?

在我的啓動類的構造函數,我有:

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

在我的啓動類的配置方法,我有:

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

回答

19

添加「應用程序設置」下的設置,這樣就可以了... 注意下面的「:0」和「:1」

格式:鍵 - >值

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

截至今天,它的效果很好。只是想確認方法還在這裏。我們使用VSTS通過PS腳本部署WebApp參數,現在我們可以推送數組。謝謝。 – Alezis

-3

簡單的辦法是自己的JSON存儲爲字符串AppSetting和反序列化

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

否則你就必須創建自己的客戶配置,我相信。 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx

相關問題