Stavo seguendo alcuni examples for ASP.NET 5 e mi sono imbattuto in come leggere correttamente i valori di configurazione "annidati" (se questo è il termine corretto).Come leggere correttamente i valori di configurazione nidificati da config.json in ASP.NET5?
Qui è rilevante porzione del config.json
:
{
"ApplicationName" : "OwNextApp",
"AppSettings": {
"SiteTitle": "OwNext"
},
}
e rilevante porzione del 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();
}
Rapporto appNestedNameFailed
è vuoto (la mia prova iniziale prima di ricerca). E appNestedNameSuccess
ha valore; dopo che ho fatto ricerca e trovato nei test per Configuration (codice rilevante mostrata):
// Assert
Assert.Equal("IniValue1", config.Get("IniKey1"));
Assert.Equal("IniValue2", config.Get("IniKey2:IniKey3"));
qualcuno può spiegare perché è questo il caso? Perché avrebbe senso usare :
su .
? Dalla mia interazione con i dati JSON di solito la notazione .
funziona bene, ad es. How to access nested json data.
Inoltre, ho trovato lo stesso SO question ma ciò non spiega perché sia stato scelto :
.
Quindi, come sospetto, era solo il delimitatore naturale. Grazie per aver confermato :) –
Grazie a tutti. Mi piace fortemente digitato quindi uso 'ConfigurationBinder'. – CrnaStena
fyi, i collegamenti sono morti – RSid