C#强类型的ConfigurationBuilder List<object> from appsettings

问题描述 投票:0回答:1

真的很纠结这个问题--应该这么难吗?

我的appsettings里有一个简单的对象数组。

"AppSettings": {
    "Names": [
      {
        "Id": "1",
        "Name": "Mike"
      },
      {
        "Id": "2",
        "Name": "John"
      }    
    ]
}

然后我有一个类

public class AppSettings
{
    public List<Names> Names { get; set; } = new List<Names>();
}

public class Names
{
    public string Id { get; set; }
    public string Name { get; set; }
}

我在我的应用程序设置中读到。

var configuration = new ConfigurationBuilder()
                            .SetBasePath(Directory.GetCurrentDirectory())
                            .AddJsonFile("appSettings.json").Build();

var config = new AppSettings();

这就是出问题的地方

config.Names = configuration.GetSection("AppSettings:Names") //<<<< what do I do here?

好像这一切都与下列因素有关: IConfigurationSection 这是没有用的。

c# .net-core console-application
1个回答
4
投票

从设置中获取整个对象图,使用 "AppSettings "中的 ConfigurationBinder.Get<T> 绑定并返回指定类型。

ConfigurationBinder.Get<T> 绑定并返回指定类型。ConfigurationBinder.Get<T> 可能比使用 ConfigurationBinder.Bind. 下面的代码显示了如何使用 ConfigurationBinder.Get<T> 随着 AppSettings 类。

//...

AppSettings config = configuration.GetSection("AppSettings").Get<AppSettings>();

//...

参考文献 在ASP.NET Core中的配置

© www.soinside.com 2019 - 2024. All rights reserved.