在appsettings.json中重复元素

时间:2019-03-07 19:19:30

标签: asp.net-core .net-core appsettings

我正在尝试从旧的web / appconfig.xml转换为appsettings.json。 xml允许这样的内容

<Items>
   <Items name="x" qty = "1">
   <Items name="y" qty = "2">
</Items>

在appsettings.json中,我想做类似的事情。

"Items": {
   "Item": { "name": "x", "qty": "1"}
   "Item": { "name": "x", "qty": "1"}
}

问题是警告消息“名称为“ Item”的成员已经存在。这是警告吗?我有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

在示例JSON中,您尝试两次分配给属性ItemItems是一个对象,而Item是该对象的属性-给定对象不可能具有相同的两次属性。

更JSON友好的方法可能是这样的:

"Items": [
    { "name": "x", "qty": 1 },
    { "name": "y", "qty": 2 }
]

在这种情况下,Items是一个包含两个对象的数组。可以使用以下C#类对单个对象进行建模:

public class Item
{
    public string Name { get; set; }
    public int Qty { get; set; }
}

使用IConfiguration,有多个绑定此选项。这是一个示例:

var yourItems = someIConfigurationInstance.GetSection("Items").Get<Item[]>();