zoukankan      html  css  js  c++  java
  • .Net Core从命令行读取配置文件

    最近在学习博客园腾飞(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

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

  • 相关阅读:
    dubbo入门(一)
    java中文件操作《一》
    Unity 游戏框架搭建 2019 (七) 自定义快捷键
    凉鞋:我所理解的框架 【Unity 游戏框架搭建】
    Unity 游戏框架搭建 2019 (六) MenuItem 复用
    Unity 游戏框架搭建 2019 (五) 打开所在文件夹
    Unity 游戏框架搭建 2019 (四) 导出 UnityPackage
    Unity 游戏框架搭建 2019 (三) 生成文件名到剪切板
    Unity 游戏框架搭建 2019 (二) 文本复制到剪切板
    Unity 游戏框架搭建 2019 (一) 简介与第一个示例文件名的生成
  • 原文地址:https://www.cnblogs.com/CoderAyu/p/8490113.html
Copyright © 2011-2022 走看看