二、目录文件
除了上一节利用JSON、INI和XML这样常用的文件格式外,还可以将指定目录和文件作为配置的数据来源。
例如现在有个文件夹s,其下面有1.txt和2.txt两个文件,文件内容分别是s1和s2,如下图1
var pathFile = Path.Combine(Directory.GetCurrentDirectory(), "s"); config.AddKeyPerFile(directoryPath: pathFile, optional: true);
通过一个Action测试一下:
publicContentResult GetFileConfiguration() { returnnewContentResult() { Content = $"1.txt:{_configuration["1.txt"]}, 2.txt:{_configuration["2.txt"]}"}; }
返回结果为:
1.txt:s1,2.txt:s2
三、命令行
通过命令行启动应用的时候,可以在命令行中通过添加Key-Value的方式作为配置的数据来源,例如执行如下命令启动应用:
dotnet run key1=value1 key2=value2
访问定义好的如下Action:
publicContentResult GetCommandConfiguration() { returnnewContentResult() { Content = $"key1:{_configuration["key1"]}, key2:{_configuration["key2"]}"}; }
返回结果为:
key1:value1,key2:value2
这是由于在默认的WebHost.CreateDefaultBuilder(args)方法中添加了对命令行参数的调用,如果需要在ConfigureAppConfiguration方法中继续添加,只需要在该方法中南调用config.AddCommandLine(args)方法即可。