[英]Unable to read data afrom appsettings.json
對不起,我確定我有一些基本錯誤,但我無法發現。 單步執行啟動代碼表明正在正確加載appsettings.json,但測試類的config類為null。
啟動:
public class Startup
{
public Startup(IConfiguration configuration)
{
var builder = new ConfigurationBuilder().AddJsonFile("appSettings.json");
Configuration = builder.Build();
}
public IConfiguration Configuration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddSessionStateTempDataProvider();
services.AddSession();
services.Configure<EnvironmentConfig>(Configuration.GetSection("EnvironmentConfig"));
}
}
ConfigTester:
public class ConfigTester
{
private readonly IOptions<EnvironmentConfig> _environmentConfig;
public ConfigTester(IOptions<EnvironmentConfig> environmentConfig)
{
_environmentConfig = environmentConfig;
}
public string ConfigName()
{
return _environmentConfig.Value.Name; //_environmentConfig.Value is set, but Name is null
}
}
EnvironmentConfig:
public class EnvironmentConfig
{
public string Name;
}
appSettings.json:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"EnvironmentConfig": {
"Name": "develop"
}
}
我錯過了什么?
在使用serives.Configure<T>()
配置選項之前,在ConfigureServices方法中添加以下行serives.Configure<T>()
。 要使用“選項”功能,您必須啟用它。
services.AddOptions();
使用IServiceCollection.Configure
,最終將appSettings.json
文件中的值綁定到EnvironmentConfig
類的ConfigurationBinder
類僅綁定屬性 。 這意味着您所要做的就是將您的公共領域更改為公共財產 :
public class EnvironmentConfig
{
public string Name { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.