簡體   English   中英

asp.net 內核中的配置鍵是否應該不區分大小寫?

[英]Are the configuration keys in asp.net core supposed to be case-insensitive?

我為我的 ASP.NET Web 應用程序創建了一個自定義配置提供程序,其中我從Microsoft.Extensions.Configuration.ConfigurationProvider繼承,並覆蓋Load()方法並使用新的Dictionary<string, string>() , string> 初始化 prop IDictionary<string, string> Data Dictionary<string, string>()

所以我有一個 appsettings.json 配置文件,包含

{
    "Token" : "Token 1"
}

在我的自定義提供程序中,我用“令牌 2”覆蓋令牌

我的代碼中有一個錯誤,我在其中調用了configuration["token"] (小寫),我注意到 appsettings 中的值已加載,但不是我的自定義提供程序中的值。

所以似乎 appsettings 配置不區分大小寫,但我的自定義提供程序不是。
那么它應該是嗎? 我剛剛創建了一個新字典,我不確定是否可以在不編寫更多代碼的情況下使其不區分大小寫。

默認情況下,Microsoft 從 NuGet 作為 .NET 的一部分提供的提供程序本身使用不區分大小寫的鍵( 代碼)。

您的自定義提供程序是否區分大小寫取決於您,但我建議您也這樣做並使用不區分大小寫的鍵值查找來支持源。

如果您使用的是Dictionary<K, V> ,那么它就像使用帶有比較器的相同構造函數並使用StringComparer.OrdinalIgnoreCase一樣簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM