web-dev-qa-db-fra.com

Lier une IConfigurationSection à un objet complexe sans aspnetcore

J'ai une application console NetCore et je veux lire le appsettings.json Et analyser une section en tant que List<Param> (Sans injection de dépendance ou AspNetCore).
J'ai déjà essayé Comment lier un objet de configuration à plusieurs niveaux en utilisant IConfiguration dans une application .net Core? mais il semble que .Get<T>() a été supprimé de netcoreapp1.1

IConfigurationSection myListConfigSection = configurationRoot.GetSection("ListA");

List<Param> paramList;

//Get does not exist
//paramList = myListConfigSection.Get<Param>();

string paramListJson = myListConfigSection.Value // is null
// won't work neither because paramListJson is null
paramList = JsonConvert.DeserializeObject<Param>(paramListJson);

appsettings.json:

{
  "ListA": [
    { "ID": "123", "Param": "ABC"},
    { "ID": "123", "Param": "JKS"},
    { "ID": "456", "Param": "DEF"}
  ]
}

Existe-t-il un moyen simple de charger la configuration dans l'objet ou dois-je relire le fichier de configuration et l'analyser moi-même avec JsonConvert?

11
Maximilian Ast

Get<T> est défini dans le package Microsoft.Extensions.Configuration.Binder

24
Treziac