.net core —— 控制台如何获取配置文件的内容?
本文链接:https://blog.csdn.net/yenange/article/details/82457761
参考: https://github.com/liuzhenyulive/JsonReader
在 Web 应用程序中, 获取配置文件还是比较简单的, 可以参考:
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.1#json-configuration-provider
但在控制台和类库中如何处理呢?
为了与 Web 保持一致, 配置文件名称还是使用:
appsettings.json
{
  "ServerCode": "99",
  "section0": {
    "UserId": "1",
    "UserName": "Tome"
  },
  "section1": {
    "UserId": "2",
    "UserName": "Marry"
  }
}
下面展示了直接取字符串、绑定到实体及取子节点的几种方式:
using Microsoft.Extensions.Configuration;
using System;
namespace ConsoleApp4
{
    class Program
    {
        //安装 .net core 2.1 完整包
        //install-package Microsoft.AspNetCore.All -version 2.1.0
        //注意不要超过 依赖项->SDK->Microsoft.NETCore.App 的版本,我这里是 2.1.0 
        //否则会无法正常生成和运行
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json");
            var configuration = builder.Build();
            Console.WriteLine($"ServerCode:{configuration["ServerCode"]}");
            UserInfo user1 = new UserInfo();
            UserInfo user2 = new UserInfo();
            configuration.GetSection("section0").Bind(user1);
            configuration.GetSection("section1").Bind(user2);
Console.WriteLine(user1.ToString());
            Console.WriteLine(user2.ToString());
            Console.WriteLine($"section0:UserId:{configuration["section0:UserId"]}");
            Console.Read();
        }
    }
public class UserInfo
    {
        public long UserId { get; set; }
        public string UserName { get; set; }
public override string ToString()
        {
            return string.Format($"UserId:{UserId}, UserName:{UserName}");
        }
    }
}
还有一个问题: UserName 后面的值, 如果换成中文, 会显示乱码, 这个如何解决?
经 lindexi_gd 兄指点, 用 notepad++ 打开 json 文件, 改成 utf-8 编码, 就可以读取中文了, 表示感谢!
————————————————
版权声明:本文为CSDN博主「吉普赛的歌」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yenange/article/details/82457761
.net core —— 控制台如何获取配置文件的内容?的更多相关文章
- ASP.NET Core Web APi获取原始请求内容
		前言 我们讲过ASP.NET Core Web APi路由绑定,本节我们来讲讲如何获取客户端请求过来的内容. ASP.NET Core Web APi捕获Request.Body内容 [HttpPos ... 
- .Net Core如何在任意位置获取配置文件的内容
		前几天群里有人问,我想在程序里的任意位置读取appsetting.json里的配置,该怎么搞. 话不多说上源码 首先,要想读取配置文件我们要用到IConfiguration 接口,这个接口在Start ... 
- netcore获取配置文件的内容
		结合了好几个哥们的写法,最终我使用了这个版本,现在把我这个版本的写出来,如果该版本和您的版本类似或者一样,那可能是借鉴您的 using Microsoft.AspNetCore.Hosting; us ... 
- Spring Boot使用@Value注解获取配置文件中的属性
		获取配置文件的内容—— 
- 在ASP.NET Core中用HttpClient(一)——获取数据和内容
		在本文中,我们将学习如何在ASP.NET Core中集成和使用HttpClient.在学习不同HttpClient功能的同时使用Web API的资源.如何从Web API获取数据,以及如何直接使用Ht ... 
- Java代码中获取配置文件(config.properties)中内容的两种方法
		方法千千万,本人暂时只总结了两种方法. (1)config.properties中的内容如图 在applicationContext.xml中配置 <!-- 引入配置文件 --> < ... 
- .Net Core控制台应用程序使用依赖注入、配置文件等
		.Net Core作为一门新语言,资料实在是太少了,并且国内学习的人也不多,虽然性能还行也跨平台了但是生态圈不发展起来也不行 刚出来的时候用 .Net Core + Dapper + Mysql 弄了 ... 
- Asp.Net Core 3.1 获取不到Post、Put请求的内容  System.NotSupportedException Specified method is not supported
		# 问题 是这样的,我.net core 2.1的项目,读取.获取Post请求内容的一段代码,大概这样: [HttpPost] public async Task<IActionResult& ... 
- .NET Core控制台利用【Options】读取Json配置文件
		创建一个 .NET Core控制台程序 添加依赖 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.FileE ... 
随机推荐
- sklearn 学习 第一篇:分类
			分类属于监督学习算法,是指根据已有的数据和标签(分类)进行学习,预测未知数据的标签.分类问题的目标是预测数据的类别标签(class label),可以把分类问题划分为二分类和多分类问题.二分类是指在两 ... 
- virtualbox 配置记录
			virtualbox 网络模式 Host-only Internal Bridged NAT 之间的区别 host-only模式,host与vm一起在内部网络 Internal模式,仅vm在内部网络 ... 
- Json序列化与反序列化(对象与Json字符串的转换)--C#
			public class JsonHelper { #region Json序列化与反序列化 /// <summary> /// 将json转化为对象 /// (需要提前构造好结构一致的M ... 
- NeatUpload  .NetFromWork4.0  config配置
			NeatUpload使用---config配置(可进行大文件传输) configuration> 下增加: <configSections> <sectionGroup nam ... 
- win7搭建本地SonarQube环境进行c#代码分析
			1.SonarQube需要正常运行,首先需要安装Java环境,我这里安装的是jdk-8u181版本,可以在下面网站找适的版本去下载安装 https://www.oracle.com/technetwo ... 
- C# Random
			一.简介 在Random类用于创建随机数.(当然是伪随机的.) 二.Random用法 例: Random rnd = new Random(); int month = rnd.Next(1, 13) ... 
- MySQL整形手工注入
			0x1 判断注入点: http://www.xxx.org/members.php?id=1 and 1=1 --+ # ture http://www.xxx.org/members.php?id= ... 
- CATransform3D 特效详解
			http://blog.sina.com.cn/s/blog_8f5097be0101b91z.html 
- vue学习指南:第七篇(详细) - Vue的 组件通信
			Vue 的 父传子 子传父 一.父组件向子组件传值: 父传子 把需要的数据 传递给 子组件,以数据绑定(v-bind)的形式,传递到子组件内部,供子组件使用 缩写是(:) 1.创建子组件,在src/ ... 
- kolla-ansible部署openstack allinone单节点
			环境准备 2 network interfaces 8GB main memory 40GB disk space 1.修改hostname hostnamectl set-hostname koll ... 
