【发布时间】:2020-10-19 15:01:20
【问题描述】:
我正在使用 .NET Core 并且想要配置我的选项。基于这个示例类
public class MySettings
{
public Dictionary<int, string> Mapping { get; set; }
}
我在 appsettings.json 文件中添加了一个映射
{
"MySettings": {
"Mapping": {
"9454545": "agf51528gfhdfg",
"13544": "bfds28745hfghsdfghd"
}
}
}
但正如您所见,键是字符串类型,而不是整数。我无法将属性名称更改为数字,因为这样我会收到错误
JSON 属性名称应该是字符串。数字属性名称不是 允许在 JSON 中
所以在启动文件中调用这个的时候
IConfigurationSection mySettingsSection = configuration.GetSection("MySettings");
services.Configure<MySettings>(mySettingsSection);
Mapping 字段将有 0 个项目,因为它无法自动将 JSON 键解析为整数。有没有办法告诉 .NET Core 将这些字符串键解析为整数并填满字典?
【问题讨论】:
-
为什么不使用
Mapping作为数组而不是对象? -
我更新了我的问题。 ID 不代表索引 :)