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接口是一个列表,列表里面存放的是配置信息的键值对。它也可以通过索引来进行访问。

通过索引访问值:

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

代码:注意类里面的属性名要和自定义的配置信息的名字要一样!

  1. namespace WebApplication1
  2. {
  3. public class ThreeOptions
  4. {
  5. //依赖注入映射
  6. public int BoldDepartmentEmployeeCountThreshold { get; set; }
  7. }
  8. }

那怎么映射到刚刚创建的类里面呢?先把原来定义的var web注释掉:

这个时候,ThreeOptions这个类就应用里面几乎所有的地方都可以使用了。

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

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

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

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

但是里面什么都没有写:

接下来就调试运行看看从appsetting.json文件配置的值是否还有效。

可以看出值是 0 说明。因为现在只读取test.json文件

ASP.NET Core的配置信息的更多相关文章

  1. ASP.NET Core的配置(1):读取配置信息

    提到"配置"二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化 ...

  2. ASP.NET Core的配置(5):配置的同步[设计篇]

    本节所谓的"配置同步"主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步:其二. ...

  3. ASP.NET Core的配置(5):配置的同步[ 实例篇]

    ConfigurationBuilder在生成以Configuration对象的时候会利用注册其中的ConfigurationProvider加载原始的配置数据,那么一旦配置源中的数据发生变化,应用程 ...

  4. ASP.NET Core的配置(4):多样性的配置来源[下篇]

    我们在上篇和中篇对配置模型中默认提供的各种ConfigurationProvider进行了深入详尽的介绍,如果它们依然不能满足项目中的配置需求,我们可以还可以通过自定义ConfigurationPro ...

  5. ASP.NET Core的配置(4):多样性的配置来源[中篇]

    我们在本篇文章中会介绍三种针对物理文件的ConfiguationProvider,它们分别是针对JSON文件的JsonConfiguationProvider,针对XML文件的XmlConfiguat ...

  6. ASP.NET Core的配置(4):多样性的配置来源[上篇]

    较之传统通过App.config和Web.config这两个XML文件承载的配置系统,ASP.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命 ...

  7. ASP.NET Core的配置(3): 将配置绑定为对象[下篇]

    我们在<读取配置信息>通过实例的形式演示了如何利用Options模型以依赖注入的方式直接获取由指定配置节绑定生成的Options对象,我们再次回顾一下当初我们编写的程序.如下面的代码片段所 ...

  8. ASP.NET Core的配置(3): 将配置绑定为对象[上篇]

    出于编程上的便利,我们通常不会直接利用ConfigurationBuilder创建的Configuration对象读取某个单一配置项的值,而是倾向于将一组相关的配置绑定为一个对象,我们将后者称为Opt ...

  9. ASP.NET Core的配置(2):配置模型详解

    在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...

随机推荐

  1. 钩子函数 Function类

    Function 为 com.google.common.base包下接口类: public interface Function<F, T> { @Nullable T apply(@N ...

  2. 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、212345等. 要求:”4”不能在第三位,”3”与”5”不能相连。

    private static String[] mustExistNumber = new String[] { "1", "2", "2" ...

  3. SpringBoot事件监听机制源码分析(上) SpringBoot源码(九)

    SpringBoot中文注释项目Github地址: https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE 本篇接 SpringApplicat ...

  4. 第十一节:configParse模块

    作用:配置文件解析模块,用来增删改查配置文件内容,不区分大小写 配置文件案例: tets.ini [模块] key=value import configparser config = configp ...

  5. 前端架构演进及主流UI

    @ 目录 前端三要素 JavaScript 框架 NodeJs 常用UI框架 前后端分离的演进 MVVM模式 总结 前端演进到现在,各种技术框架已经层出不穷了,作为一名开发少不了要干一些前端的活儿,那 ...

  6. JasperReports入门教程(二):中文打印

    JasperReports入门教程(二):中文打印 背景 在上一篇中我们介绍了JasperReport的基本入门,也展示了一个报表.但是我们的示例都是使用的英文,如果我们把需要打印的数据改为中文会怎么 ...

  7. Flutter 开发填坑指南

    引言 第一次在使用Flutter是在Ubuntu机器上,但是因为Android Studio还有Sdk配置问题,flutter doctor总是在这一步报错...最近又在win10上配了一下环境(真香 ...

  8. 杂园日记-获取URL参数

    function getUrlParams(name, url){ var locationUrl = window.location.search; if(url){ var s =url.inde ...

  9. PHP open_basedir配置未包含upload_tmp_dir 导致服务器不能上传文件

    在做一个上传图片的功能时候发现后台接收到的$_FILES['file']['error'] = 6,这个错误意思是找不到临时文件,或者是临时文件夹无权限,需要更改php.ini文件的 upload_t ...

  10. windows server 2012 R2系统安装部署SQLserver2016企业版(转)

    转自  https://blog.csdn.net/qq_35938548/article/details/80272288 安装sql server是一个很繁琐的事情,花了一下午时间倒腾,现记录下整 ...