ASP.NET5 の config.json からネストされた構成値を適切に読み取るにはどうすればよいでしょうか? 質問する

ASP.NET5 の config.json からネストされた構成値を適切に読み取るにはどうすればよいでしょうか? 質問する

私はいくつかをフォローしていました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値があります。調査した後、テストで構成(関連コードを表示):

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

なぜそうなるのか説明してくれる人はいますか?:over を使うのはなぜ意味があるのでしょうか.?JSONデータとのやり取りからすると、通常は.表記法はうまく機能します。例:ネストされたJSONデータにアクセスする方法

また、似たようなものを見つけました質問ですしかし、なぜそれが選ばれたのかについては説明されていません:

ベストアンサー1

これは、構成モデルを最初に作成したときに決定した規則です。最初は json を念頭に置いており、:ここでは が区切り文字になっています。

とにかく、これらの慣習を気にしたくない場合は、構成バインダー構成をモデル (強力な型オブジェクト) にバインドします。GitHubのテストはこちらそれは例として役立ちます。

おすすめ記事