【发布时间】:2018-02-11 13:02:12
【问题描述】:
每次调用Configuration.GetSection,返回对象的Value属性始终为null。
我的Startup 构造函数
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
this.Configuration = builder.Build();
}
我的ConfigureServices 方法
public void ConfigureServices(IServiceCollection services)
{
services.Configure<SqliteSettings>(opts => Configuration.GetSection("SqliteSettings").Bind(opts));
services.AddOptions();
services.AddMvc();
}
我的appsettings.json
{
"SqliteSettings": {
"DataSource": "C:\\db.sqlite",
"NewDatabase": true,
"Version": 3
}
}
我用来定义 SqliteSettings 的类
public class SqliteSettings
{
public string DataSource { get; set; }
public bool? NewDatabase { get; set; }
public int? Version { get; set; }
public string Password { get; set; }
public long? CacheSize { get; set; }
// More properties
}
我在想 JSON 可能需要具有相同数量的属性才能匹配,或者它可能与数据类型定义有关,但也许这些完全不相关。
【问题讨论】:
标签: c# asp.net-core .net-core