我有这些配置模型:
public class AppConfiguration
{
public string StateFilesPath { get; set; }
public string ConnectionString { get; set; }
public Dictionary<string,ActionsSettings> ActionsSettings { get; set; }
}
public class ActionsSettings
{
public string ApiUrl { get; set; }
public string TableName { get; set; }
}
我有这个json:
{
"StateFilesPath": "StateFilesPath...",
"ConnectionString ": "BIConnectionString...",
"ActionsSettings": [
{
"Reg": {
"ApiUrl": "ApiUrl...",
"TableName": "TableName..."
}
}
]
}
这是我的Main
功能:
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfigurationRoot configuration = builder.Build();
configuration = builder.Build();
是否可以自动构建AppConfiguration
?
再次,这是.net core 2控制台应用程序
由于
答案 0 :(得分:1)
您仍然可以在Core 2中使用Bind()
方法:
IConfigurationRoot configuration = builder.Build();
var appConfig = new AppConfiguration();
configuration.GetSection("App").Bind(appConfig);
但是使用Core 2,您还可以使用更方便的Get<T>()
方法:
IConfigurationRoot configuration = builder.Build();
var appConfig = configuration.GetSection("App").Get<AppConfiguration>();
两者都是扩展方法,因此您需要命名空间:
using Microsoft.Extensions.Configuration;