DotNetCore的程序的配置不再完全局限于XML文件,增加更加通用的Json配置。

读取Json配置文件的类主要在Microsoft.Extensions.Configuration命名空间下,创建完对应的程序后,需要时NuGet引入该DLL文件。

1. 创建ConsoleApp程序

Vs2017中直接使用新建项中选择创建控制台应用(.NET Core)。

2. 使用NuGet添加程序记引用

依赖项节点上右击,选择“管理NuGet程序包”,搜索Microsoft.Extensions.Configuration,依次安装Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.BinderMicrosoft.Extensions.Configuration.Json

3. 创建Json配置文件

新建文件,选择“JavaScript JSON配置文件”,并配置文件属性复制到输出目录属性为如果较新则复制,并在文件中输入以下配置信息

{
"General":{
"UseLED":true,
"UseScan":false,
"PortName":"Port1",
"PortRate":9600
}
}

实例中列出了General配置节下包括四个配置:

UseLED、UseScan、PortName、PortRate

。同时,也可以在配置节下添加更多的配置信息或配置节,也可以添加更多的同级别配置节信息。

4. 创建配置类

根据配置文件的结构创建对应的配置类:

    public class GeneralSetting
{
public bool UseLED { get; set; } public bool UseScan { get; set; } public int PortRate { get; set; } public string PortName { get; set; }
}

配置类中的属性名称与Json配置文件中的配置项的名称在大小写不敏感必须全文匹配。

5. 读取配置并绑定到配置类实例

DotNetCore中读取Json文件和绑定到对应的类实例的类和方法在命名空间Microsoft.Extensions.Configuration下。

var builder = new ConfigurationBuilder().AddJsonFile("appsetting.json");
var configuration =builder.Build();
GeneralSetting setting = new GeneralSetting();
configuration.GetSection("General").Bind(setting);

通过以上代码,就可以将配置文件中的配置信息赋值到配置类实例中。

DotNetCore学习-1.读取Json配置并绑定到配置类实例的更多相关文章

  1. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  2. .NET读取json数据并绑定到对象

    需要引用的命名空间: 读取的具体应用: this代表本实体(对象),通过PopulateObject,直接将读取到的json数据与对象进行绑定 Json保存的具体应用: 将对象保存为Json JObj ...

  3. 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 SpringBoot是如何实现自动配置的?--SpringBoot源码(四) 温故而知新,我们来简单回顾一下上 ...

  4. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-读取json封装成类(13)

    把读取json数据的函数封装成类 # -*- coding: utf-8 -*- # @Time : 2020/2/12 16:44 # @File : do_json_13.py # @Author ...

  5. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  6. Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6)

    Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6) 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配置DNS ...

  7. MVC + EFCore 完整教程19-- 最简方法读取json配置:自定义configuration读取配置文件

    问题引出 ASP.NET Core 默认将 Web.config移除了,将配置文件统一放在了 xxx.json 格式的文件中. 有Web.config时,我们需要读到配置文件时,一般是这样的: var ...

  8. SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池

    三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...

  9. python学习笔记十六:读取JSON文件

    读取JSON文件可以用JSON库,示例代码: #coding:utf-8 import json with open("msg.json") as jsonfile: json_d ...

随机推荐

  1. s11 Docker+DevOps实战--过程和工具

    开发人员本地提交代码,本地使用容器模拟生产环境测试,测试通过提交到git master 分支,就会触发pipeline执行集成构建.集成工具: gitlab-vi,travis,或Jenkins.自动 ...

  2. Java面试题3

    1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...

  3. CCNA笔记

    *****************交换机********************一:交换机:具有多个交换端口,专用集成电路技术使得交换器以线路速率在所有的端口并行转发数据,有很高的总体吞吐率;虚拟网V ...

  4. css概括

    CSS:美化页面 层叠样式表 修改标签样式 1.分类:内联    内嵌       外部引用 (1)内联: 写在标签里面,以属性的形式表现 属性名为style (2)内嵌:写在head标签里面,以标签 ...

  5. ESP-IDF版本更新说明(V2.1版)转自github(https://github.com/espressif/esp-idf/releases/)

    ESP-IDF Release v2.1  igrr 发布了这个 on 29 Jul · 自此发布以来,我承诺要 承诺414 自v2.0以来的变化. 突破变化 版本v2.1旨在大大兼容为ESP-IDF ...

  6. 几种String对象方法的区别

    1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...

  7. Django Template 进阶

    回顾: Variables {{ var }} {{ dict.key }} {{ var.attr }} {{ var.method }} {{ varindex }} Filter {{ list ...

  8. 改善Python 程序的 91 个建议

    建议1.理解Pythonic概念—-详见Python中的<Python之禅> 建议2.编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量.使用容易混淆的变量名.害怕过长 ...

  9. 你可能不知道的BFC在实际中的应用

    概述 BFC是块级格式化上下文,它的一个令人熟知的运用是双飞翼布局或者两列布局.但其实它在其它地方也有很巧妙的运用.我把研究的心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资料: mdn块 ...

  10. location匹配

    =/ 表示精确匹配  www.sensetime.com/ ~ :表示做正则表达式匹配,区分字符大小写 ~* : 表示做正则表达式匹配,不区分大小写 ^~: URI的左半部分匹配,不区分大小写 匹配优 ...