当我尝试插入一个数组作为local.settings.json文件中的一个值时:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"myArray": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value3",
"key2": "value4"
}
]
},
"ConnectionStrings": {
"SQLConnectionString": "myConnectionString"
}
}
字符串
我开始得到例外。local.settings.json
文件中可以使用数组吗?如果可以,正确的格式是什么?
7条答案
按热度按时间pw9qyyiw1#
需要使用数组索引器格式。
例如:
字符串
gab6jxml2#
这现在是可能的!
我的本地设置文件如下所示:
字符串
部署到Azure时,我的配置看起来像这样:x1c 0d1x的数据
然后,为了在我的启动中解析数组,我有这样的东西:
型
...其中
CustomSetting
是这样的类:型
我正在使用
Microsoft.Extensions.Configuration
Nuget包的3.1.5版本和Microsoft.NET.Sdk.Functions
Azure Functions SDK的3.0.7版本。mwg9r5ms3#
如果您尝试在local.settings.json文件/环境变量中设置数组,则可以指定以下格式:
字符串
在Startup.cs中,可以使用以下语法绑定数组
型
这是一个使用.NET 6.0和Azure Functions v4的示例
93ze6v8z4#
在local.settings.json文件中添加类似数组的字符串:
字符串
然后在代码中反序列化它,如下所示:
型
bfnvny8b5#
可以在local.settings.json文件中使用数组吗?如果可以,正确的格式是什么?
local.settings.json目前似乎不支持arrarys。
据我所知,Values集合应该是一个Dictionary,如果其中包含任何非字符串值,将导致Azure函数无法从local.settings.json读取值
根据我的测试,如果它包含它将返回null值
字符串
的数据
slmsl1lt6#
我找到了一个解决方案,但不会使其复杂化,您可以简单地创建一个数组,如下所示,它在Azure Functions中的local.settings.json文件中完美工作-
字符串
wlsrxk517#
对于简单数组,这里已经有了一些很好的答案,但是我想添加一些与复杂对象相关的细节,以防有人遇到需要一个包含嵌套对象的数组的“完整示例”。简而言之,数组可以像下面这样引用。下面是一个包含简单字符串“Name”属性的2个租约的数组。此外,数组索引似乎可以使用或不使用方括号。我添加方括号是因为它更清楚地表明这是一个数组项。
字符串
但在我的例子中,我也有复杂的嵌套配置对象,而不仅仅是简单的原语。这方面的约定是在对象和它的属性之间加双下划线,它们可以嵌套多个层次。例如,我有一个Lease对象数组,每个对象都有一个复杂的RateLimit属性,而RateLimit属性又有一个复杂的FixedWindow属性,如下所示:
型
我的配置看起来像这样:
型
加载配置就像从config中绑定一个基本列表一样简单:
型