【发布时间】:2022-01-10 22:09:05
【问题描述】:
我正在开发 APIExecutor 项目,它是一个控制台应用程序,从 Appsettings.json 文件中读取所需的配置。如下所示:
"APIConfig": {
{
"RootAPI": "https://hub.dummyapis.com",
"API": [
{
"Url": "/employee",
"Method": "GET",
"Params": {
"noofRecords": 10,
"idStarts": 1001
},
"RequestType": "application/json",
"Headers": null
},
{
"Url": "/student",
"Method": "POST",
"Params": {
"name": "ABC",
"adress": "bla bla bla",
"IsPassed": true,
},
"RequestType": "application/json",
"Headers": null
}
]
}
}
}
我想把它映射到下面的类中
public class APIConfig {
public string Url { get; set; }
public string Method { get; set; }
public dynamic Params { get; set; }
public string RequestType { get; set; }
public List<RequestHeaders> Headers { get; set; }
}
上面的参数中,Params可以是任何东西,不知道Params应该是什么类型,严格依赖API调用。所以,我试图让它动态和对象,但是当我尝试如下获取它时:
var config = _builder.GetSection("APIConfig").Get<APIConfig>()
这里,_builder 是 IConfiguration 的一个实例。
请注意:参数不是固定的。它可以是任意的,具体取决于 API 调用。
在配置中获取 null。我知道这是因为动态参数。如果我删除该参数,则它会成功映射。
从 appsettings.json 读取配置时,我找不到任何映射动态参数的方法
【问题讨论】:
-
你想达到什么目的。因为该文件将在应用程序的每个生命周期加载一次。或者您正在编写一个库来读取所有参数。您是否尝试过 Object 而不是 dynamic?
-
是的,它仍然在配置中给出 null
-
这里是小提琴:dotnetfiddle.net/gvwsqu。请注意,我评论了 Params 对象
标签: c# .net-core appsettings