c# - asp.net core 中的配置键是否应该不区分大小写?

标签 c# asp.net-core configuration

我为我的 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/

相关文章:

c# - Entity Framework Core 的 MySQL 排序规则问题

c# - ASP.NET Core 2.0 翻译始终为英文

php - NGINX - 在多个目录中查找 .php 文件,然后执行它

c# - 从数据库中读取 SQL Varbinary Blob

c# - 响应/请求模式...如何塑造 DTO?

c# - 在 c# 中将整数列表附加到 SQL Server 查询。我怎样才能做到这一点?

更改服务器后 Joomla 空白,管理面板良好

c# - 编译时抛出 “Process is terminated due to StackOverflowException”

c# - identityServer4收到token后应该如何添加redis?

Spring,根据配置文件切换属性文件