【发布时间】:2021-11-19 07:17:27
【问题描述】:
我的 appsettings json 文件
{
"AppSettings": {
"contractInfo": [
{ "contract1": "01/11/2020"},
{ "contract2": "29/07/2021"},
{ "contract3": "15/10/2021"},
{ "contract4": "15/02/2021"}
]
}
}
我有一个单独的配置类。
public ConfigHelper(IConfiguration configuration)
{
_configuration = configuration;
}
public string GetConfigValue(string key)
{
var value = _configuration["AppSettings:" + key];
return !string.IsNullOrEmpty(value) ? Convert.ToString(value) : string.Empty;
}
Contract Info 是键值对,键是合约名称,值是合约结束日期。
如何在不使用 appsettings.json 文件中的 for 循环的情况下读取特定合同的结束日期。(也就是说,如果我们从数据库中获取合同名称为“合同 3”,我想读取来自 appsettingsjson 的合同 3 的合同结束日期,不使用 for 循环)
感谢任何帮助。 谢谢。
【问题讨论】:
-
这个 json 有点奇怪,你有一个对象数组,它们都有不同的属性名称,是的,你可以用一些时髦的转换器或活页夹或提供者来做到这一点,这都比这是值得的。如果可能的话,您似乎应该将您的 json 更改为实际的字典
-
我认为值得注意的是,除非您知道要测试的数组中的确切索引,否则如果没有某种循环机制,您将无法真正访问数组中的特定值,直接或在 .NET Core 本身内。如果将
contractInfo更改为对象而不是数组,则可以以更高效的方式访问键。 -
@Llama 我想以这种格式保留我的 appsettings 并完成任务(因为它只是已实施项目的一部分)。有没有办法可以读取特定密钥仅没有硬编码为contract1,因为取决于我们从数据库获得的名称。(它可能因用户而异),我必须得到日期
-
为什么需要硬编码?
-
不,我不想硬编码
标签: c# arrays key-value appsettings