zoukankan      html  css  js  c++  java
  • .net core json配置相关用法

    在.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配置文件中的相关参数,如下图所示。

    在中括号里面的参数是有讲究的。如下面这个配置:

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

    参考文章:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/options?view=aspnetcore-2.1

  • 相关阅读:
    toj 2975 Encription
    poj 1797 Heavy Transportation
    toj 2971 Rotating Numbers
    zoj 2281 Way to Freedom
    toj 2483 Nasty Hacks
    toj 2972 MOVING DHAKA
    toj 2696 Collecting Beepers
    toj 2970 Hackle Number
    toj 2485 Card Tric
    js页面定位,相关几个属性
  • 原文地址:https://www.cnblogs.com/williamwsj/p/9482352.html
Copyright © 2011-2022 走看看