在 Azure Web 应用设置中使用数组
Posted
技术标签:
【中文标题】在 Azure Web 应用设置中使用数组【英文标题】:Using an array in Azure web app settings 【发布时间】:2016-03-07 21:36:00 【问题描述】:在我的 ASP.NET 5 (RC1) 代码中,我有一个 appsetting.json,看起来像这样:
"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 中将数组或列表指定为字符串——这甚至可能吗?
在我的 Startup 类的构造函数中,我有:
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables();
在我的 Startup 类的 Configure 方法中,我有:
var someSettings = configuration.GetSection("SomeSettings").Get<SomeSettings>();
【问题讨论】:
【参考方案1】:像这样在“应用程序设置”下添加设置就可以了... 注意下面的“:0”和“:1”
格式:键->值
SomeSettings:PropA -> AzureValueA
SomeSettings:PropB:0 -> AzureValueB1
SomeSettings:PropB:1 -> AzureValueB2
如果您不是在 Windows 上运行,请将冒号 :
替换为双下划线 __
以让您的应用查看设置。所以而不是例如SomeSettings:PropA
,你会使用SomeSettings__PropA
。
【讨论】:
到今天为止,它运行良好。只是想确认方法还在这里。我们使用 VSTS 通过 PS 脚本部署 WebApp 参数,现在我们可以推送数组了。谢谢。 你知道如何将SomeSettings__PropB
表示为一个空数组吗?
这也适用于 Azure Functions 的 local.settings.json。
如果您使用 Azure Function,请不要忘记在设置名称中添加 Values
前缀。即Values:SomeSettings:PropB:0
【参考方案2】:
简单的方法是将JSON作为字符串存储在AppSetting中,并自行反序列化
var serializer = new javascriptSerializer();
var settings = serializer.Deserialize<SomeSettings>(configuration.GetSection("SomeSettings"));
我相信您将不得不创建自己的客户配置。 https://msdn.microsoft.com/en-us/library/2tw134k3.aspx
【讨论】:
这个问题是关于“Azure web app settings”的,你的答案是无关紧要的。以上是关于在 Azure Web 应用设置中使用数组的主要内容,如果未能解决你的问题,请参考以下文章
Azure:Web 应用程序 - 从已部署的 nodejs 应用程序中列出应用程序设置
如何在发布前使用 azure 管道在 Web 应用程序中复制反应构建文件?