我为我的 ASP.NET Web 应用程序创建了一个自定义配置提供程序,我从 Microsoft.Extensions.Configuration.ConfigurationProvider
继承, 并覆盖 Load()
方法并初始化 Prop IDictionary<string, string> Data
带有新的 Dictionary<string, string>()
.
所以我有一个 appsettings.json 配置文件,其中包含
{
"Token" : "Token 1"
}
在我的自定义提供程序中,我用“ token 2”覆盖 token
我的代码中有一个错误,我调用了 configuration["token"]
(小写),我注意到 appsettings 中的值已加载,但不是我的自定义提供程序中的值。
所以看起来 appsettings 配置不区分大小写,但是我的自定义提供程序
不是。
那么它应该是吗?我刚刚创建了一个新字典,我不确定是否可以在不编写更多代码的情况下使其不区分大小写。
最佳答案
Microsoft 从 NuGet 作为 .NET 的一部分提供的提供程序默认使用不区分大小写的键 (code)。
您的自定义提供程序是否区分大小写取决于您,但我建议您也这样做,并使用不区分大小写的键值查找来支持源代码。
如果您使用的是 Dictionary<K, V>
,那么它就像使用带有比较器的相同构造函数并使用 StringComparer.OrdinalIgnoreCase
一样简单.
关于c# - asp.net core 中的配置键是否应该不区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67917148/