.net core 2控制台应用程序绑定datamodel

时间:2018-01-16 15:42:11

标签: c# .net-core-2.0

我有这些配置模型:

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控制台应用程序

由于

1 个答案:

答案 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;