appsettings.json 中的重复元素
repeating elements in appsettings.json
我正在尝试从旧的 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"}
}
问题是警告消息 "A member with the name "Item" 已经存在。这个警告是个问题吗?我应该有更好的方法吗?
在您的示例 JSON 中,您试图将 属性 Item
赋值两次。 Items
是一个对象,Item
是所述对象的 属性 - 不可能有相同的 属性 两次 给定的对象。
更 JSON 友好的方法可能是这样的:
"Items": [
{ "name": "x", "qty": 1 },
{ "name": "y", "qty": 2 }
]
在这种情况下,Items
是一个包含两个对象的数组。可以使用以下 C# class:
对单个对象进行建模
public class Item
{
public string Name { get; set; }
public int Qty { get; set; }
}
使用IConfiguration
,有多个绑定选项。这是一个例子:
var yourItems = someIConfigurationInstance.GetSection("Items").Get<Item[]>();
我正在尝试从旧的 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"}
}
问题是警告消息 "A member with the name "Item" 已经存在。这个警告是个问题吗?我应该有更好的方法吗?
在您的示例 JSON 中,您试图将 属性 Item
赋值两次。 Items
是一个对象,Item
是所述对象的 属性 - 不可能有相同的 属性 两次 给定的对象。
更 JSON 友好的方法可能是这样的:
"Items": [
{ "name": "x", "qty": 1 },
{ "name": "y", "qty": 2 }
]
在这种情况下,Items
是一个包含两个对象的数组。可以使用以下 C# class:
public class Item
{
public string Name { get; set; }
public int Qty { get; set; }
}
使用IConfiguration
,有多个绑定选项。这是一个例子:
var yourItems = someIConfigurationInstance.GetSection("Items").Get<Item[]>();