最简单的方式

引用

Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json

json文件

新建一个ConfigTest.json
右键属性,设置为“始终复制”
数据如下:

{
"TotalCount": 2,
"Students": [
{
"Name": "Lili",
"Sex": "女"
},
{
"Name": "Tom",
"Sex": "男"
}
]
}

读取json

var builder = new ConfigurationBuilder();
builder.AddJsonFile("ConfigTest.json");
var config = builder.Build();
Console.WriteLine(config["TotalCount"]);
//索引
Console.WriteLine(config["Students:0:Name"]);
Console.WriteLine(config["Students:0:Sex"]);
Console.WriteLine(config["Students:1:Name"]);
Console.WriteLine(config["Students:1:Sex"]);

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfig方法

Bind读取配置

引用

第一个示例中的引用也要添加

Microsoft.Extensions.Configuration.Binder

读取json

var builder = new ConfigurationBuilder()
.AddJsonFile("ConfigTest.json");
ConfigTest configTest=new ConfigTest();
var config = builder.Build();
//Microsoft.Extensions.Configuration.Binder
config.Bind(configTest);
Console.WriteLine(configTest.TotalCount);
Console.WriteLine(configTest.Students[0].Name);
Console.WriteLine(configTest.Students[0].Sex);
Console.WriteLine(configTest.Students[1].Name);
Console.WriteLine(configTest.Students[1].Sex);

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfigByBind方法

Option

引用

第一个示例中的引用也要添加

Microsoft.Extensions.Options

在appsettings.json中添加测试数据

{
"MyData": {
"TotalCount": 2,
"Students": [
{
"Name": "Lili",
"Sex": "女"
},
{
"Name": "Tom",
"Sex": "男"
}
]
}
}

实体类需要实现IOptions<T>

public class ConfigTest:IOptions<ConfigTest>
{
public int TotalCount { get; set; }
public List<Student> Students { get; set; }
public ConfigTest Value => this;
}

读取json

public class ConfigController : Controller
{
private ConfigTest _configTestByOptions;
private readonly IConfiguration _configuration;
public ConfigController(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult Index()
{
//GetSection:必须先读节点
//ConfigTest实现接口IOptions<ConfigTest>
_configTestByOptions = _configuration.GetSection("MyData").Get<ConfigTest>();
return View();
}
}

注意

CreateDefaultBuilder方法已经读取appsettings.json,所以在这个示例中,我们没有调用AddJsonFile方法添加appsettings.json文件,而是直接读取appsettings.json中的数据即可

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreWebsite/Controllers/ConfigController.cs

热更新

定义

optional:该配置文件是否可选,如果optional=false,加载失败会抛出异常
reloadOnChange:文件被修改时是否重新加载,热更新就是这个,设置为true即可

public static IConfigurationBuilder AddJsonFile(this IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange)

注意,热更新是修改bin目录下的生成的文件

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/Website/DotNetCore/CoreConsole/Config/ConfigReadDemo.cs 的ReadConfigHotUpdate方法

.net core config读取的更多相关文章

  1. asp.net core mvc 读取appsettings.config中文乱码问题

    asp.net core mvc 读取appsettings.config中文乱码问题的解决方法如下: 用记事本打开appsettings.config,另存为的时候,编码设置为 “UTF-8”,

  2. NET Core开发-读取配置文件Configuration

    ASP.NET Core开发-读取配置文件Configuration   ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NE ...

  3. [.NET Core] 简单读取 json 配置文件

    简单读取 json 配置文件 背景 目前发现网上的 .NET Core 读取配置文件有点麻烦,自己想搞个简单点的. .NET Core 已经不使用之前的诸如 app.config 和 web.conf ...

  4. NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

    今天调试SSM框架项目后台JSOn接口,报出来一个让人迷惑的错误:NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config 上网查了一下别人的博 ...

  5. springMVC: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config

    springMVC开发web的时候,报错:java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config 原因:未引入jstl ...

  6. Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config解决

    出现这个问题往往伴随  HTTP-500错误 报错信息: HTTP Status - Handler processing failed; nested exception is java.lang. ...

  7. javax/servlet/jsp/jstl/core/Config

    javax/servlet/jsp/jstl/core/Config springmvc出现的问题. 尝试了各种jar,问题依旧. DispatcherServlet配置如下. <bean id ...

  8. 解决NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

    使用spring3.05 mvc进行开发,使用tomcat容器,通过url映射寻找view的时候,会报错NoClassDefFoundError: javax/servlet/jsp/jstl/cor ...

  9. java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

    今天写SpringMvc时,遇到这样一个问题: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config at org.sp ...

随机推荐

  1. window.onload,<body onload="function()">, document.onreadystatechange, httpRequest.onreadystatechang 分类: C1_HTML/JS/JQUERY 2014-08-06 16:47 558人阅读 评论(0) 收藏

    部分内容参考:http://www.aspbc.com/tech/showtech.asp?id=1256 在开发的过程中,经常使用window.onload和body onload两种,很少使用do ...

  2. sigmoid function vs softmax function

    DIFFERENCE BETWEEN SOFTMAX FUNCTION AND SIGMOID FUNCTION 二者主要的区别见于, softmax 用于多分类,sigmoid 则主要用于二分类: ...

  3. JavaScript实现form表单的多文件上传

    form表单的多文件上传,具体内容如下 formData对象可以使用一系列的键值对来模拟一个完整的表单,然后使用Ajax来发送这个表单 使用<form>表单初始化FormData对象的方式 ...

  4. Android JNI 自定义对象为参数和返回值

    ndroid JNI 提供了很强大的支持,不仅可以采用基本类型做为参数和返回值,同时也支持自定义对象做为参数和返回值,以下举例说明. 一.定义作为输入和返回的自定义类 (仅提供两个简单类型和一个打印函 ...

  5. web网站如何获取用户的地理位置

    web网站如何获取用户的地理位置 一.总结 一句话总结:通过gps知道用户的经度和纬度,然后通过经度和纬度在在地图(google或者百度)上面显示位置. 1.html5如何通过gps知道用户的经度和纬 ...

  6. https://github.com/zhangxianyi/Source-Insight-Plugin

    https://github.com/zhangxianyi/Source-Insight-Plugin

  7. MUI简介-最接近原生App体验的前端框架

    MUI简介-最接近原生App体验的前端框架 一.总结 一句话总结:最接近原生App体验的前端框架 二.多端发布 – 开发一套代码,发布六个平台 真正彻底的跨平台开发,不是简单的跨iOS和Android ...

  8. oracle 全部查询和表空间,以及其关系

    select * from dba_users;   查看数据库里面全部用户,前提是你是有dba权限的帐号.如sys,system select * from all_users;     查看你能管 ...

  9. 192M内存的VPS,安装Centos 6 minimal x86,无法安装node.js

    尝试了各种方法,始终安装不了node.偶然一次,安装了64位的Centos 6 minimal,竟然可以安装Node官网给出的命令安装node了,一切顺利.

  10. 【非常高%】【codeforces 733B】Parade

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...