C# .Net核心-IConfigurationRoot读取整个json文件

C# .Net核心-IConfigurationRoot读取整个json文件,c#,dependency-injection,configuration,.net-core,C#,Dependency Injection,Configuration,.net Core,我有以下Config.jsonfile { "UserId": 2930, "Phones":["<HomePhoneNumber>", "<MobileNumber>"] } { “用户ID”:2930, “电话”:[“”,“”] } 我在Config.cs中有相应的Config类 public class Config { public int UserId { get; set; } public List<string> Pho

我有以下Config.jsonfile

{
   "UserId": 2930,
   "Phones":["<HomePhoneNumber>", "<MobileNumber>"]
}
{
“用户ID”:2930,
“电话”:[“”,“”]
}
我在Config.cs中有相应的Config类

public class Config
{
  public int UserId { get; set; }
  public List<string> Phones { get; set;}
}
公共类配置
{
public int UserId{get;set;}
公共列表电话{get;set;}
}
我在学习这个教程-

但是我的config.json文件中没有像他的appsettings.json这样的部分。我想把这个配置文件作为一个整体来读。如何使用ConfigurationBuilder实现这一点

class Program
{
    static async Task Main(string[] args)
    {
        var services = new ServiceCollection();
        ConfigureServices(services);
        var serviceProvider = services.BuildServiceProvider();

        var config = serviceProvider.GetService<Config>();
    }

    private static void ConfigureServices(IServiceCollection services)
    {
        services.AddLogging(builder => builder.AddDebug().AddConsole());

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

        services.AddOptions();
        services.Configure<Config>(configuration);
    }
}
类程序
{
静态异步任务主(字符串[]args)
{
var services=newservicecolection();
配置服务(服务);
var serviceProvider=services.BuildServiceProvider();
var config=serviceProvider.GetService();
}
专用静态void配置服务(IServiceCollection服务)
{
services.AddLogging(builder=>builder.AddDebug().AddConsole());
var configuration=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“Config.json”,false)
.Build();
services.AddOptions();
服务。配置(配置);
}
}

由于选项配置,您需要通过
IOptions

//...

var serviceProvider = services.BuildServiceProvider();
var option = serviceProvider.GetService<IOptions<Config>>();
var config = option.Value;
/。。。
var serviceProvider=services.BuildServiceProvider();
var option=serviceProvider.GetService();
var config=option.Value;
另一种方法是直接从配置中提取类,方法是绑定到所需的对象图,然后将其添加到服务集合中

//...

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

var config = configuration.Get<Config>();
services.AddSingleton(config);

//...
/。。。
var configuration=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“Config.json”,false)
.Build();
var config=configuration.Get();
services.AddSingleton(config);
//...
按照上述方法

//...

var config = serviceProvider.GetService<Config>();
/。。。
var config=serviceProvider.GetService();
将按预期工作