Bind an IConfigurationSection to a complex object without ASP.NET Core
21,771
Get<T>
is defined in package Microsoft.Extensions.Configuration.Binder
Author by
Maximilian Ast
Just earning some internet points 😄 Languages of choice: C#, Typescript Operating systems: Windows, Linux
Updated on July 09, 2022Comments
-
Maximilian Ast almost 2 years
I have a .NET Core console application and want to read the
appsettings.json
and parse a section asList<Param>
(without Dependency Injection or ASP.NET Core).
I already tried How do I bind a multi level configuration object using IConfiguration in a .net Core application? but it seems like.Get<T>()
got removed fromnetcoreapp1.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"} ] }
Is there an easy way to load the config into the object or do I have to read the config file again and parse it myself with
JsonConvert
? -
Maximilian Ast almost 7 yearsThanks, it did the trick. As much I love it, I sometimes hate that they switched everything to a different nkpg.
-
granadaCoder over 5 years#loveHate Yep,I'm always searching for and finding that "extra" nkpg.
-
Luke over 5 yearsThis doesn't appear to be the same as GetSection as it appears to get the entire config file as an object.
-
Guillaume about 5 yearsYou can use it an on IConfiguratoinSection and get just this section as an object