ASP.NET Core的配置信息
ASP.NET Core的配置信息
- Key-Value键值对
- 内存里、JSON、XML、INI等文件
- 配置信息与配置系统是解耦的
- 可以依赖注入
ASP.NET Core的配置信息来源
- appsetting.json
- appsettings.{Environment}.json
- Secret Manager(用得少)
- 环境变量
- 命令行参数
首先ASP.NET Core运行的时候它会找appsetting的这个文件,这里面可以存放配置信息。它会根据当前的开发模式,比如说是Development模式,这个时候它就会找appsettings.{Enviroment}.json这个文件。找完这两个文件后就会找Secret这个配置源,如果appseting文件里面有比如说Connectionstrings这个字符串连接的值,而Secret也有字符串连接但是是另外一个值。这个时候ASP.NET Core这个Web引用实际上会用到后边的Secret的配置信息,所以这个顺序是比较重要的,后边的如果和前边的有同样的配置信息的话,那么就取后边的。
前两个是这样的顺序,第三个呢它就会找系统的环境变量,如果配置信息还是有重复,那么就取环境变量的。
最后就是命令行参数,ASP.NET Core本身也是一个命令行程序。



自定义配置信息:

配置好了后进行配置信息的依赖注入:实际上IConfiguration接口是一个列表,列表里面存放的是配置信息的键值对。它也可以通过索引来进行访问。

通过索引访问值:

我们也可以将我们自定义配置的信息映射到一个类里边,首先建立一个类。

代码:注意类里面的属性名要和自定义的配置信息的名字要一样!
namespace WebApplication1
{
public class ThreeOptions
{
//依赖注入映射
public int BoldDepartmentEmployeeCountThreshold { get; set; }
}
}
那怎么映射到刚刚创建的类里面呢?先把原来定义的var web注释掉:
这个时候,ThreeOptions这个类就应用里面几乎所有的地方都可以使用了。

如果你想在控制器中注入呢,就可以这样:

那怎么用在视图上呢?可以这样:

来看看效果:可以看到大于配置信息的值30的都加粗了字体。

如果你不想使用appsetting.json作为配置信息来源的话,就可以Program类添加一个方法。test.json是自己添加的一个json配置文件


但是里面什么都没有写:
接下来就调试运行看看从appsetting.json文件配置的值是否还有效。
可以看出值是 0 说明。因为现在只读取test.json文件

ASP.NET Core的配置信息的更多相关文章
- ASP.NET Core的配置(1):读取配置信息
提到"配置"二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...
- ASP.NET Core的配置(5):配置的同步[设计篇]
本节所谓的"配置同步"主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步:其二. ...
- ASP.NET Core的配置(5):配置的同步[ 实例篇]
ConfigurationBuilder在生成以Configuration对象的时候会利用注册其中的ConfigurationProvider加载原始的配置数据,那么一旦配置源中的数据发生变化,应用程 ...
- ASP.NET Core的配置(4):多样性的配置来源[下篇]
我们在上篇和中篇对配置模型中默认提供的各种ConfigurationProvider进行了深入详尽的介绍,如果它们依然不能满足项目中的配置需求,我们可以还可以通过自定义ConfigurationPro ...
- ASP.NET Core的配置(4):多样性的配置来源[中篇]
我们在本篇文章中会介绍三种针对物理文件的ConfiguationProvider,它们分别是针对JSON文件的JsonConfiguationProvider,针对XML文件的XmlConfiguat ...
- ASP.NET Core的配置(4):多样性的配置来源[上篇]
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,ASP.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命 ...
- ASP.NET Core的配置(3): 将配置绑定为对象[下篇]
我们在<读取配置信息>通过实例的形式演示了如何利用Options模型以依赖注入的方式直接获取由指定配置节绑定生成的Options对象,我们再次回顾一下当初我们编写的程序.如下面的代码片段所 ...
- ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
出于编程上的便利,我们通常不会直接利用ConfigurationBuilder创建的Configuration对象读取某个单一配置项的值,而是倾向于将一组相关的配置绑定为一个对象,我们将后者称为Opt ...
- ASP.NET Core的配置(2):配置模型详解
在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...
随机推荐
- 发布公开的pod
发布公开的pod 方便项目 通过cocoapods 使用,便于版本版本管理,下面是简单步奏: 0.首次操作先要注册Trunk: pod trunk register zhujin001xb@163.c ...
- SolrCloud(solr集群+zookeeper集群)
一.集群介绍 1. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引 ...
- Adaptert Listview 优化
这次是关于Listview的优化的,之前一直采用愚蠢的方式来使用listview,出现的情况就是数据多的话下拉的时候会出现卡顿的情况,内存占用多.所以学习了关于listview的优化,并且这也是普遍使 ...
- CTF中的命令执行绕过
本位原创作者:Smity 在介绍命令注入之前,有一点需要注意:命令注入与远程代码执行不同.他们的区别在于,远程代码执行实际上是调用服务器网站代码进行执行,而命令注入则是调用操作系统命令进行执行. 作为 ...
- F - Minimum Sum LCM
LCM (Least Common Multiple) of a set of integers is defined as the minimum number, which is a multip ...
- 玩转控件:Fucking ERP之流程图
前言 首先,跟守护在作者公众号和私信作者催更的朋友们道个歉.疫情的原因,公司从年初到现在一直处于996+的高压模式,导致公众号更新频率较低.而且作者每更新一篇原创公众号,既要对自己沉淀知识负责,也要对 ...
- Linux学习笔记(二)文件操作命令
文件操作命令 touch stat cat more less head tail ln touch 英文原意: change file timestamps 功能: 修改文件的时间戳 语法: tou ...
- 详解 Properties类
(请观看本人博文--<详解 I/O流>) Properties类: 概念: Properties 类的对象 是 一个持久的属性集 Properties 可 保存在流中 或 从流中加载 属性 ...
- 【题解】P2602 数字计数 - 数位dp
P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数 \(a\) 和 \(b\) ,求在 \([a,b]\) 中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中 ...
- 《闲扯Redis五》List数据类型底层之quicklist
一.前言 Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要. ...