【发布时间】:2022-03-29 14:22:07
【问题描述】:
我在从appsettings.json 获取数据时遇到问题。
该文件如下所示:
"Integrations": {
"System01": {
"Host": "failover://(tcp://localhost:61616)?transport.timeout=2000",
"User": "admin",
"Password": "admin"
},
"System02": {
"Host": "failover://(tcp://localhost:61616)?transport.timeout=2000",
"User": "admin",
"Password": "admin"
},
}
我有以下 DTO:
public class IntegrationsConfigurationDto
{
public string Host { get; set; }
public string User { get; set; }
public string Password { get; set; }
}
当尝试阅读时:
var config = _configuration.GetValue<IntegrationsConfigurationDto>("Integrations:System01");
我收到null。但如果我这样做:
var config = new IntegrationsConfigurationDto();
_config.Bind("Integrations:System01", config);
我在config 变量中正确获取了值。
为什么会这样?在这种情况下如何使用GetValue<T>?
提前致谢。
【问题讨论】:
-
为什么不能使用第二种方法?
-
我可以。只是想知道为什么第一个不起作用,以及是否有什么我可以做的。
-
我认为 GetValue 用于单个值,而不是用于部分。
标签: c# asp.net-core .net-core appsettings