我在我的appsettings.json
文件中存储了一组键值对:
{
"ApplicationSettings": {
...
"CellularProviders": [
{
"Cingular": "cingularme.com"
},
{
"Nextel": "vtext.com"
},
{
"Sprint": "messaging.sprintpcs.com"
},
{
"T-Mobile": "tmomail.net"
},
{
"Verizon": "messaging.nextel.com"
},
{
"Virgin Mobile": "vmobl.com"
}
]
...
}
目前,我在List<Dictionary<string,string>>
填充的POCO类中使用了Startup.cs
:
public class ApplicationSettings
{
...
public List<Dictionary<string,string>> CellularProviders { get; set; }
}
这是表示键值对数组的推荐方法吗?
此外,我希望能够使用应用程序的“设置”部分在Azure中管理此设置:
在此上下文中表示键值对数组的正确方法是什么?
答案 0 :(得分:0)
您无法将JSON
放入App设置,因为它是一组简单的键值对。要覆盖appsettings.json
中的设置,您需要表示完整路径,按:
s分段,作为键(值保持不变):
例如,一个key
为CellularProviders:Cingular
且value
设置为cingularme.com
。
CellularProviders:Cingular = cingularme.com
CellularProviders:Nextel = vtext.com
CellularProviders:Sprint = messaging.sprintpcs.com
CellularProviders:T-Mobile = tmomail.net
CellularProviders:Verizon = messaging.nextel.com
CellularProviders:VirginMobile = vmobl.com
至于将其转换为List<Dictionary<string, string>>
,我不确定我理解你为何使用&#34;词典列表&#34;而不是Dictionary<string, string>
。
Dictionary<TKey, TValue>
几乎是List<T>
个KeyValuePair<TKey, TValue>
个对象(请注意,这有点过于概括)。您应该考虑使用它:
public Dictionary<string,string> CellularProviders { get; set; }
这将允许您轻松查找集合中的值,如下所示:
var providerValue = CellularProviders["Cingular"];