gpt4 book ai didi

c# - 如何从 ASP.NET5 中的 config.json 正确读取嵌套的配置值?

转载 作者:太空狗 更新时间:2023-10-29 18:26:44 27 4
gpt4 key购买 nike

我正在关注一些 examples for ASP.NET 5我迷失了如何正确读取“嵌套”配置值(如果这是正确的术语)。

这是 config.json 的相关部分:

{
"ApplicationName" : "OwNextApp",
"AppSettings": {
"SiteTitle": "OwNext"
},
}

HomeController.cs 的相关部分:

public IActionResult About()
{
var appNestedNameFailed = _config.Get("AppSettings.SiteTitle");
var appNestedNameSuccess = _config.Get("AppSettings:SiteTitle");
var appName = _config.Get("ApplicationName");
ViewBag.Message = string.Format(@"Your
APP NAME: {0};
APP NESTED NAME FAILED: {1};
APP NESTED NAME SUCCESS: {2}",
appName, appNestedNameFailed, appNestedNameSuccess);

return View();
}

appNestedNameFailed 的值是空的(我在研究之前的初步尝试)。并且 appNestedNameSuccess 具有值(value);在我做了研究并在测试中发现 Configuration (显示相关代码):

// Assert
Assert.Equal("IniValue1", config.Get("IniKey1"));
Assert.Equal("IniValue2", config.Get("IniKey2:IniKey3"));

有人能解释一下为什么会这样吗?为什么使用 : 而不是 . 有意义?从我与 JSON 数据的交互来看,通常 . 表示法工作正常,例如How to access nested json data .

此外,我发现了类似的 SO question但这并没有解释为什么选择 :

最佳答案

这是我们在首次创建配置模型时决定的约定。我们从 json 开始,: 是这里的分隔符。

无论如何,如果您不想担心这些约定,我建议使用 ConfigurationBinder它将配置绑定(bind)到模型(强类型对象)。 Here are the tests on GitHub可以作为例子。

关于c# - 如何从 ASP.NET5 中的 config.json 正确读取嵌套的配置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com