最近在学习博客园腾飞(jesse)的.Net Core视频教程,收益匪浅,在此作推荐 : http://video.jessetalk.cn/

言归正传,.Net Core应用程序中如何通过命令行读取配置文件呢?首先,新建一个.Net Core控制台引用程序,创建过程在此不在赘述。

创建好后,我们需要在Nuget管理器中添加Microsoft.AspNetCore.All的引用,添加方法:引用-》管理NuGet包程序-》浏览,如图:

在搜索栏中搜索 Microsoft.AspNetCore.All 并安装,中间有个提示是否接受的提示框,选择接受即可。

引用添加成功后,打开Program.cs,添加

using Microsoft.Extensions.Configuration;

然后,可以把Main 函数中的代码删除,改成如下所示的代码。

 class Program
{
static void Main(string[] args)
{ var builder = new ConfigurationBuilder()
.AddCommandLine(args);
var configuration = builder.Build();
Console.WriteLine($"name:{configuration["name"]}");
Console.WriteLine($"age:{configuration["age"]}");
Console.ReadLine();
}
}

我们需要从配置文件中读取name信息和age信息,直接运行程序是读取不到结果的,会是如下显示:

可以看到,没有读取到任何信息,因为我门并没有从命令行中传值呢! 在测试环境下,我们可以选中该项目,点击属性,

选择调试 ,在引用程序参数中输入:

name=test age=18

如图:

然后,我们启动项目,即可看到结果了(记得保存)。

那么,在实际的应用环境中,如何进行命令行传参呢?

我们直接在cmd中打开该应用程序的dll文件, 搜先要进入dll文件所在的目录,然后用dotnet命令运行dll文件,如图:

正常输出。

我们还可以在内存中进行预先配置配置数据,当命令行中没有传参时,预先读取内存中的配置,方法如下:

  class Program
{
static void Main(string[] args)
{
var settings=new Dictionary<string,string>()
{
{ "name","123"},
{ "age","100"}
};
var builder = new ConfigurationBuilder()
.AddInMemoryCollection(settings)
.AddCommandLine(args);
var configuration = builder.Build();
Console.WriteLine($"name:{configuration["name"]}");
Console.WriteLine($"age:{configuration["age"]}");
Console.ReadLine();
}
}

这样,即使我们在命令行中没有产地参数,也能在内存中读取到配置数据,在CMD中运行如下:


该项目的GitHub地址如下:

https://github.com/liuzhenyulive/vide.jessetalk.cn

有任何问题欢迎留言交流。

.Net Core从命令行读取配置文件的更多相关文章

  1. ruby 从命令行读取文本

    最常见的方式就是使用内置的get 方法,这个方法可以从命令行读取用户的输入,并在默认的情况下把读入的文本赋值给预定义变量$_. 但是get方法会保留用户在输入字符串末尾所加的换行符,当用户在输入的字符 ...

  2. vs for Mac中的启用Entity Framework Core .NET命令行工具

    在vs for Mac的工具菜单中已没有了Package Manager Console. 我们可以通过以下方法使用Entity Framework Core .NET命令行工具: 1.添加Nuget ...

  3. 使用.Net Core编写命令行工具(CLI)

    命令行工具(CLI) 命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行. 通常认为,命令行工具(CLI)没有 ...

  4. Python解析命令行读取参数 -- argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...

  5. ASP.NET Core实现类库项目读取配置文件

    前言 之前继续在学习多线程方面的知识,忽然这两天看到博问中有个园友问到如何在.net core类库中读取配置文件,当时一下蒙了,这个提的多好,我居然不知道,于是这两天了解了相关内容才有此篇博客的出现, ...

  6. .NET Core在类库中读取配置文件appsettings.json

    在.NET Framework框架时代我们的应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别 ...

  7. mac 命令行读取 u盘

    mac 系统命令行读取u盘

  8. odoo server命令行以及配置文件

    odoo server 启动时 def main(args): check_root_user() odoo.tools.config.parse_config(args) check_postgre ...

  9. ASP.NET Core轻松入门Bind读取配置文件到C#实例

    首先新建一个ASP.NET Core空项目,命名为BindReader 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢?  打开Progra ...

随机推荐

  1. POJ 3128 Leonardo's Notebook [置换群]

    传送门 题意:26个大写字母的置换$B$,是否存在置换$A$满足$A^2=B$ $A^2$,就是在循环中一下子走两步 容易发现,长度$n$为奇数的循环走两步还是$n$次回到原点 $n$为偶数的话是$\ ...

  2. 游戏2048源代码 - C语言控制台界面版

    一.游戏介绍 <2048>是最近比较流行的一款数字游戏.原版2048首先在github上发布,原作者是Gabriele Cirulli.它是基于<1024>和<小3传奇& ...

  3. 【Tools】linux更改分辨率,解决虚拟机安装后太小的问题

    Linux更改屏幕分辨率 1,分辨率模式已存在 1)如何查询是否存在: 终端输入命令:xrandr,即会输出当前已存在的分辨率模式. 2)如何配置: 使用命令xrandr --output 显示器名称 ...

  4. 用Markdown写微信公众号文章

    目前微信公众号的编辑器是不支持Markdown语法的,那怎么办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http:/ ...

  5. 开启MySQL远程访问权限 允许远程连接

    1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql;Database changedmysql> select host,user ...

  6. python学习:收集主机信息

    #!/usr/bin/env python   from subprocess import Popen, PIPE   def getIfconfig():     p = Popen(['ifco ...

  7. vuejs、eggjs全栈式开发设备管理系统

    vuejs.eggjs全栈式开发简单设备管理系统 业余时间用eggjs.vuejs开发了一个设备管理系统,通过mqtt协议上传设备数据至web端实时展现,包含设备参数分析.发送设备报警等模块.收获还是 ...

  8. java1 - 环境与简介

    一.阅读 JAVA历史 回答以下问题: JDK 是什么? JRE 是什么? java 有那三大平台? java 开发工具有那些? java 可以在那些系统上面做开发? java 工程师可以做什么? 二 ...

  9. Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)

    有了子弹,总得有敌人来打吧,不然游戏有啥意思呢?今天我们来实现敌机从屏幕上边往下飞 参考微信打飞机游戏里面,敌机分为3种 1是特小飞机,2是小飞机,还有一种就是大飞机 面向对象编程提倡抽象,实现代码复 ...

  10. 使用C#开发C/S框架高级版添加新项目实例

    操作步骤: 1.新建一个项目CSFramework3.test,在CSFramework3.test项目下新建一个FormMan窗口(此时不需要继承). 2.按F7打开类,替换一下引用 using S ...