ASP.NET CORE Study02

asp.net core 配置文件加载优先级

默认情况下,项目下 的 launchSettings.json 配置文件的优先级最高,appsettings.Development.json 优先级次之,appsettings.json 配置文件优先级最后。
注意的是,在appsettings.json 下可以更具需求建立多个settings.json ,如development.json ,productionsetting.json 等json 配置文件,每个不同json 文件可以进行专门不同的配置信息,不仅可以使针对开发环境进行独立配置,在较为复杂的业务场景下还可以专门将一部分配置抽离出来,比如connectionsetting.json 专门进行各类连接的配置。

因为launchsettings 配置文件是项目启动是加载的配置,是一定会最先被加载,优先级固然最高,而appsettings 配置信息则是项目运行是加载的信息,优先级当然低于launchsetting配置文件。

asp.net core 读取自定义json 配置信息

方式一:

使用IConfiguration 接口的方式。

  1. 建立并书写好自定义json 配置文件。
  2. 在program 类中使用 ConfigureAppConfiguration 方法以指定应用的配置提供程序,即 将自定义的配置json 文件添加到应用程序的配置文件集合中。

在这里插入图片描述

  1. controller 中调用,使用 构造函数注入,由asp.net core 内置容器注入一个IConfiguration 接口类型的对象。

在这里插入图片描述

这样就能获取到自定义json 配置文件的信息。

方式二

使用IOptions 接口的方式

  1. 建立并书写好自定义json 配置文件。
  2. 在program程序启动类中将json配置文件加入到asp.net core 程序的配置文件集合中,与方式一一致。
  3. 新建实体类,类名需要和节点名称一致,即 在自定义json 配置文件中 需要读取的具体节点信息的节点名称 保持一致。类型的属性 需要需要读取节点的节点信息的数据类型保持一致,其中节点下的key 值就应是实体类的属性名。
  4. 在startup 中的ConfigureService 注册服务。

在这里插入图片描述

  1. 在controller 中调用,也是使用构造函数注入,注入一个 定义的实体类,从注入的实体类中获取到节点数据。

在这里插入图片描述

这样也可以获取到json 的配置信息。

asp.net core 读取appsettings.json 配置信息

方式一:

使用IConfiguration 接口的方式

  1. appsettings.json 配置文件已经定义好所需的节点信息,当然可以不一定是appsettings.json 文件也可以是 appsettings.Production.json 或 appsettings.Development.json 文件。例如 读取数据库连接字符串。
  2. 首先在statup 中的configureService 方法中进行注入,

使用 services.AddSingleton(COnfiguration); 注册。

  1. 然后在 controller 中调用, 使用构造函数注入,一个 IConfiguration 接口类型的对象,使用使用 .GetSection(“ConnectionStrings”)[“DeefaultConnection”] 类似的方式获取所需的节点信息。
方式二:

使用IOptions 接口的方式

  1. 书写好对应 appsettings.json 配置文件。
  2. 定义一个实体类,类名需要和节点的名称保持一致,实体类的属性也推荐和json 的节点名称保持一致,数据类型需要保持一致。
  3. 在startup 的 configureservice 方法中注册,使用
services.Configure<ConnectionStrings>(Configuration.GetSection("ConnectionStrings"));

// todo
这里的注册方式 和 上面的读取自定义json 配置文件中的方式二 的

ConnectionStrings option = new ConnectionStrings();
Configuration.GetSection("ConnectionStrings").Bind(option);
services.AddSingleton(option);

功能是一致的。

  1. 在controller 中调用,通过构造函数注入,注入一个 IOptions类型的对象,在IOptions 的T 中传入 定义的实体类。使用就是通过对象访问属性的方式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo_Wish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值