我正在尝试在应用程序中检索配置。
我已经将IConfiguration传递到了服务类中,该服务类需要进行一些设置。
该类看起来像这样:
private IConfiguration _configuration;
public Config(IConfiguration configuration)
{
_configuration = configuration;
}
public POCO GetSettingsConfiguration()
{
var section = _configuration.GetSection("settings") as POCO;
return section;
}
在调试中,我可以看到_configuration确实包含设置 但我的“节”只是返回为null。
我知道我可以尝试设置要在启动时创建的Poco,然后将其作为依赖项进行注入,但是由于设置原因,我宁愿在与注入的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; }
}
答案 0 :(得分:2)
IConfiguration
和IConfigurationSection
为此具有扩展方法Bind:
var poco = new POCO();
_configuration.GetSection("settings").Bind(poco);
或者只是Get
var poco = _configuration.GetSection("settings").Get(typeof(POCO));
或通用Get
var poco = _configuration.GetSection("settings").Get<POCO>();
答案 1 :(得分:1)
您需要使用:
import matplotlib.pyplot as plt
from time import sleep
from scipy import eye
plt.imshow(eye(3))
plt.show()
sleep(1)
plt.close()
从var section = _configuration.GetSection("settings").Get<POCO>();
返回的内容只是一个字符串字典。您不能将其强制转换为POCO类。