.net core 命令行配置提供程序 电脑版发表于:2020/6/18 15:58 ![.netcore](https://img.tnblog.net/arcimg/hb/c857299a86d84ee7b26d181a31e58234.jpg ".netcore") >#.net core 命令行配置提供程序 [TOC] <br/> 核心组件包 ------------ <br/> - Microsoft.Extensions.Configuration - Microsoft.Extensions.Configuration.Abstractions - Microsoft.Extensions.Configuration.CommandLine <br/> 支持的命令格式 ------------ <br/> - 无前缀的 **key=value** 模式 - 双中横线模式 **--key=value** 或 **-key value** - 正斜杠模式 **/key=value** 或 **/key value** - 无前缀的 **key=value** 模式 备注:等号分隔符和空格分隔符不能混用 <br/> 命令替换模式 ------------ <br/> - 必须以单划线 **(-)** 或双划线 **(--)** 开头 - 映射字典不能包含重复**key** <br/> 简单运用 ------------ <br/> >###项目结构 ![项目结构](https://img.tnblog.net/arcimg/hb/0caf305775d04fa8916c94b15aa71ae6.png "项目结构") >###配置环境 ![配置环境](https://img.tnblog.net/arcimg/hb/11972e29373343afa25899e1f50df046.png) 参数如下 `CommandLineKey1=value1 --CommandLine=value2 /CommandLineKey3=value3 -k1=k3` >当我们按 **Ctrl+S** 将会自动生成 **launchSettings.json** 文件 内容如下 ```json { "profiles": { "ConfigurationDemo": { "commandName": "Project", "commandLineArgs": "CommandLineKey1=value1 --CommandLine=value2 /CommandLineKey3=value3 -k1=k3" } } } ``` >###代码示范 ```csharp var builder = new ConfigurationBuilder(); #region 命令替换 var mapper = new Dictionary<string, string> { { "-k1", "CommandLineKey1" } }; #endregion //当没有单个命令需要替换的时候可直接这样写 //builder.AddCommandLine(args); builder.AddCommandLine(args, mapper); var configurationRoot = builder.Build(); Console.WriteLine($"CommandLineKey1:{ configurationRoot["CommandLineKey1"]}"); Console.WriteLine($"CommandLine:{ configurationRoot["CommandLine"]}"); Console.WriteLine($"CommandLineKey3:{ configurationRoot["CommandLineKey3"]}"); Console.ReadKey(); ``` >###结果 ![结果](https://img.tnblog.net/arcimg/hb/a0e8758f59f4430fa3e3acb02e3ee34d.png "结果") <br/> 运用场景 ------------ <br/> >可以用来写一些 **dotnet** 的命令行工具