我不明白为什么当标准读取 json 配置文件时,配置参数以字符串形式出现,无论它们如何写入 json 文件。
让我解释一下。
在这里,我在 NET Core 8 上创建一个标准控制台项目,在那里添加依赖项Microsoft.Extensions.Configuration并Microsoft.Extensions.Configuration.Json
然后我直接写到Main
var builder = new ConfigurationBuilder().AddJsonFile("appSettings.json", false, false);
var configuration = builder.Build();
var rc = configuration["retryCounter"];
然后我添加 appSettings.json ,上面写着
{
"retryCounter": 42
}
...在代码中我得到一个值为“42”的字符串:
这是我不明白的地方:
我们的 json 已经输入了。是的,只有原始类型,但是数量
"retryCounter": 42
与字符串不同
"retryCounter": "42"
如果我使用我自己的类,某种
MySettings.cs带有其中描述的字段的类,并将其序列化 - 将其反序列化为 json - 那么我将进行到 json 的转换并返回,保留基本类型(int、string、float)同时,使用配置和ConfigurationBuilder是推荐的方式。也就是说,如果你做错了,那么在合适的地方他们会给你一个耳光。
那么为什么这个推荐路径如此有限并且与使用 ini 文件没有什么不同呢?这里有什么我不明白的意思吗,或者只是“世界上所有的数据都是字符串,我们不应该欺骗自己”?





