在appsettings.json中重复元素

问题描述 投票:1回答:1

我正在尝试从旧的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"}
}

问题是警告消息“一个名为”的成员“项目”已经存在。这个警告​​是否有问题?我应该采取更好的方法吗?

asp.net-core .net-core appsettings
1个回答
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[]>();
© www.soinside.com 2019 - 2024. All rights reserved.