.net core json配置相关用法

本文详细介绍了在.NET Core中如何管理和使用配置文件,包括默认的appsettings.json配置,自定义JSON配置文件的引入,以及配置的动态更新。通过依赖注入和IOptionsSnapshot接口,可以实现在配置文件变更后自动加载新的配置。此外,还展示了如何通过IConfiguration接口直接获取配置参数,以及配置集合的处理方法。
摘要由CSDN通过智能技术生成

在.net core中,配置文件差不多都是json文件。我们在开发程序的时候,可以使用系统默认的appsettings.json,可以自定义json配置文件。当json配置文件里面的参数改变时,程序也会自动重新加载。

接下来我们需要演示的,就是这些相关的功能。

一、使用默认的appsettings.json配置文件

1、在配置文件中定义配置类:

在这里插入图片描述

2、在程序中新建一个ClientInfo类,对应这个配置类

在这里插入图片描述

3、在Startup.ConfigureServices方法中,加入如下代码:

在这里插入图片描述

4、在应用中使用

在应用中使用这些配置,有三种方式,一种是通过构造函数进行依赖注入,第二种是通过服务定位的方式,第三种是在视图中通过@inject注入的方式。

第一种,通过构造函数注入:
在这里插入图片描述
第二种,通过服务定位的方式(一般不推荐这种用法):

在使用这种方式的前提下,首先得在Startup类中配置IServiceProvider

新建一个ServiceLocator类,用来存储IServiceProvider的实例。
在这里插入图片描述

Startup.Configure方法中,配置IServiceProvider
在这里插入图片描述
通过服务定位的方式得到对应配置的实例:
在这里插入图片描述

第三种,在视图中通过@inject方式注入:
在这里插入图片描述
以上是针对单个配置类,如果是集合怎么办?如下图所示:
在这里插入图片描述

先建立针对集合中的单个类模型:
在这里插入图片描述

那我们在Startup.ConfigureService方法中,就应该像这样写:
在这里插入图片描述

在应用中,可以通过上面的那三种方式的任一一种来使用,诸如:
在这里插入图片描述

二、使用自定义的配置文件

系统默认的appsettings.json配置文件满足不了当前系统的需求,需要另起json配置文件,如下图:
在这里插入图片描述

则我们怎么才能将之里面的配置信息导入到程序应用中呢?见以下代码:
在这里插入图片描述
借助ConfigurationBuilder类来实现。使用这种方式的前提下,一定要找到我们自定义配置文件的路径。

三、改变配置文件中的参数,使的程序会自动重新加载配置

使用IOptions<T>这种方式注入不会产生这种效果,需使用IOptionsSnapshot<T>

如下图所示:
在这里插入图片描述

使用IOptionsSnapshot<T>得到配置参数的这种方式,在外部配置文件的参数更改后,程序会重新自动加载该配置文件。

四、在应用中使用IConfiguration来得到json配置文件中的相关参数

我们可以在应用中直接通过IConfiguration来获取json配置文件中的相关参数,如下图所示。
在这里插入图片描述

在中括号里面的参数是有讲究的。如下面这个配置:
在这里插入图片描述
ClientHosts都属于第一层每个配置的根节点名称,因此在写那个参数时,就需要以每个参数的第一层根节点开头。如果当前根节点对应的是一个对象,则可以通过英文冒号(:)跟进其下一层的节点名称,如Client:Id,这样就会找到Client对象的Id参数值。如果是集合数组,则需要找到集合数组中的这个类(或者元素)的索引下标,如果我想找Hosts集合中第一个类的Ip参数值,则可以这样写Hosts:0:Ip,这样就得到了192.168.1.1这参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值