如何从控制台应用程序中的config.json读取值

JOS*_*Ftw 8 c# console-application asp.net-core

我刚安装了ASP.NET 5并在Visual Studio中创建了一个控制台应用程序.我已经将一个文件config.json添加到项目的根文件夹中.

它看起来像这样:

{
    "Data": {
        "TargetFolderLocations": {
            "TestFolder1": "Some path",
            "TestFolder2": "Another path"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Program.cs看起来像这样

public void Main(string[] args)
{
    var configurationBuilder = new ConfigurationBuilder(Environment.CurrentDirectory)
    .AddJsonFile("config.json")
    .AddEnvironmentVariables();
    Configuration = configurationBuilder.Build();

    //Doesn't work...null all the time
    var test = Configuration.Get("Data:TargetFolderLocations");

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

如何使用代码访问TargetFolderLocations键?

Kir*_*lla 5

具有如下类型:

public class FolderSettings
{
    public Dictionary<string, string> TargetFolderLocations { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用ConfigurationBinder将配置部分自动绑定到上述类型。例:

var folderSettings = ConfigurationBinder.Bind<FolderSettings>(config.GetConfigurationSection("Data"));
var path = folderSettings.TargetFolderLocations["TestFolder1"];
Run Code Online (Sandbox Code Playgroud)