gpt4 book ai didi

c# - IConfiguration.GetSection() 作为属性返回 null

转载 作者:行者123 更新时间:2023-12-03 20:16:02 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中检索配置。

我已将 IConfiguration 传递给需要提取一些设置的服务类。

这个类看起来有点像这样:

private IConfiguration _configuration;
public Config(IConfiguration configuration)
{
_configuration = configuration;
}
public POCO GetSettingsConfiguration()
{
var section = _configuration.GetSection("settings") as POCO;

return section;
}

在调试中,我可以看到 _configuration 确实包含设置
但我的“部分”只是简单地返回为空。

我知道我可以尝试设置要在启动时创建的 Poco,然后作为依赖项注入(inject),但由于设置,如果可能的话,我宁愿在注入(inject)的 IConfiguration 的单独类中进行。

我的 appsettings.json 有这些值:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",

"settings": {
"Username": "user",
"Password": "password",
"Domain": "example.com",
"URL": "http://service.example.com"
}

}

我的 poco 类如下所示:
public class POCO
{
public string URL { get; set; }
public string Username { get; set; }
public SecureString Password { get; set; }
public string Domain { get; set; }
}

最佳答案

你需要使用:

var section = _configuration.GetSection("settings").Get<POCO>();
GetSection 返回的内容只是一个字符串字典。您不能将其转换为您的 POCO 类(class)。

关于c# - IConfiguration.GetSection() 作为属性返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54461422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com