.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

环境

  • vs2019 16.4.5
  • .netcore 3.1

目的

  • 探究appsettings.json文件的读取方式、自定义扩展json配置文件

实验代码

读取方法一、IConfiguration[“key1:key2”]

1.1 在appsettings.json中加入配置如下:

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

1.2 直接在startup.cs中注入读取:

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

1.3 读取使用:

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

1.4 运行查看效果如下:

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

注意:这种读取方式是支持热更新的(即:在程序运行中修改了appsettings.json文件后不用重启应用,程序中就可以已经修改了的值)

读取方法二、转为配置对象读取

2.1 appsettings.json文件中加入测试的配置节点

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

2.2 新建映射类

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

2.3 将配置节点转换为对象并注入到服务中

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

2.4 使用配置类

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

2.5 运行查看效果:

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

注意:这种读取方式不支持热更新

三、自定义配置文件

3.1 新建文件 myconf.json

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

3.2 将这个文件加入程序的配置中

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

3.3 读取配置内容

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)
.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

3.4 浏览器查看效果

.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

和appsettings.json的使用方法一致,支持热更新

四、原理

参考:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/index?view=aspnetcore-3.1#json-configuration-provider
.netcore入门8:aspnetcore读取appsettings.json内容(自定义扩展、原理)

从上面的说明中可以看到:自定义的json配置文件和appsettings.json配置的效果是一样的,后面json的配置项会覆盖前面配置文件的相同项