将 IConfigurationSection 绑定到没有 ASP.NET Core 的复杂对象
Bind an IConfigurationSection to a complex object without ASP.NET Core
我有一个 .NET Core 控制台应用程序,想要读取 appsettings.json
并将一个部分解析为 List<Param>
(没有依赖注入或 ASP.NET Core)。
我已经尝试过 但似乎 .Get<T>()
已从 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"}
]
}
有没有一种简单的方法可以将配置加载到对象中,还是我必须再次读取配置文件并使用 JsonConvert
自己解析它?
Get<T>
在包 Microsoft.Extensions.Configuration.Binder
中定义
我有一个 .NET Core 控制台应用程序,想要读取 appsettings.json
并将一个部分解析为 List<Param>
(没有依赖注入或 ASP.NET Core)。
我已经尝试过 .Get<T>()
已从 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"}
]
}
有没有一种简单的方法可以将配置加载到对象中,还是我必须再次读取配置文件并使用 JsonConvert
自己解析它?
Get<T>
在包 Microsoft.Extensions.Configuration.Binder