asp.net core配置文件
读取配置文件
asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettings>节点。它的数据格式变成了json字符串,便于我们操作和维护。
不管是.net framework还是.net core,在将应用程序发布到生产环境时,所需要的各种配置或多或少都不一样,比如数据库连接字符串,或者redis连接地址,或者接口地址等等。难道我们每次都要在发布后,再次手动更新配置文件吗?明显不可行,那么针对这种问题,我们怎么解决呢?微软给出了具体方案。
那就是在appsettings.json文件的基础上,针对不同的环境添加不同的配置文件。比如用文件appsettings.product.json来存放生产环境需要的配置信息,用appsettings.qa.json来存放测试环境需要的配置信息。然后程序根据环境变量查找对应的appsettings文件。
接下来我会提供详细的步骤和例子演示如何读取appsettings.json配置文件。
1.新增appsettings.Development.json文件。

并将其内容修改为:

红色部分是我添加的测试数据。
2.添加对应实体类

3.修改Startup

构造方法有两个形参,第一个形参configuration,在应用启动时会给初始值。我们就是要修改configuration的值,改变它的运行轨迹。第二个形参env是我后来加上去的,目的是为了获取我们需要的环境变量。
env.ContentRootPath,它的值就是你的web项目(SongLou.Web)所在的目录。我的web项目的目录是:D:\demo\SongLou\SongLou.Web。
AddJsonFile,根据这个方法读取具体的配置文件。env.Environment是最重要的,它的值就是具体的环境变量,由ASPNETCORE_ENVIRONMENT决定,前面已经讲过。
有个需要说明的地方,如果环境变量是开发环境,即ASPNETCORE_ENVIRONMENT的值为Development,在程序读取appsettings. Development.json文件时,如果找不到,它会读取我们在代码中设置的默认文件appsettings.json。如果不指定默认的文件.AddJsonFile($"appsettings.json", optional: true, reloadOnChange: true),我们的代码运行后是拿不到任何信息的。如下图:

4.修改ConfigureServices

红色部分就是我们手动加上去的,services.Configure方法会从Startup方法拿到的配置文件(appsettings.Development.json)读取配置信息,并将配置信息赋值给Test类,最终注入到容器里面。
5.Controller注入并测试

首先定义一个只读的私有字段_test,然后通过HomeController构造方法注入代表配置信息的类型Test给_test对象。这样_test对象就存放了我们需要的配置信息。最后我们通过AppSettingsTest方法将配置信息输出。Ioptions<T>泛型的作用我还没研究。
下图就是我们程序运行的结果,可以看到我们拿到了配置信息。

asp.net core配置文件的更多相关文章
- ASP.NET Core 配置文件(无处不在的依赖注入)
前烟: .NET Core 中取消了以往的 XML 节点配置文件,改用了 *.json 格式. 在 Startup.cs 文件中,构造方法 build appsetting.json 文件, 本文主要 ...
- ASP.NET Core 配置文件
在ASP.NET Core 中,应用程序配置数据可以使用JSON, XML 和 INI格式 和内置环境变量,命令行参数或内存中的集合. 1.如何获取和设置配置 ASP.NET Core配置系统针对以前 ...
- .NET 黑魔法 - asp.net core 配置文件的"对象存储"
来,全都是干货. 我们都知道在Framework版本的mvc项目中,配置数据是通过web.config里的appSettings节点配置,我们不得不写一些读取配置文件字符串的类,比如保存在静态的变量中 ...
- asp.net core 配置文件动态更新
IOptions<T> //站点启动后,获取到的值永远不变 IOptionsSnapshot<T> //站点启动后,每次获取到的值都是配置文件里的最新值 (reloadOnCh ...
- net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件
asp.net core配置文件 读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...
- 【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生 ...
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们之前的Asp.net mvc 开发中,一提到配置文件,我们不由的想到 web.config 和 app.config,在 ...
- ASP.NET Core开发-读取配置文件Configuration
ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ...
- asp.net core轻松入门之MVC中Options读取配置文件
接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...
随机推荐
- 20155231 2016-2017-2 《Java程序设计》第6周学习总结
20155231 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 学习目标 理解流与IO 理解InputStream/OutPutStream的继承架构 理解 ...
- Hadop 基础
HDFS 体系结构 mapreduce 体系结构和算法 haddop 集群 zookeeper 操作:HBase 体系结构Hive /Sqoop 体系结构和基本操作: mapreduce 逻辑处理数据 ...
- Nginx URL匹配
Nginx 下 location模块 可以实现对网页URL进行分析处理 location ~ .*\.(gif|jpg|jpeg|png|bmg|swf)$ { // 扩展名为gif|jpg|j ...
- luogu P3243 [HNOI2015]菜肴制作
这题一看就知道和拓扑序有关 考虑拓扑排序的时候每次取队列里最小的数进行排序 然后就\(\mathcal{GG}\)了,因为这样只能使字典序最小,而并不能保证题目中要求的每个编号的数要在满足前面数尽量在 ...
- rem,em
任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的body选择 ...
- js 组件化
我的github样例:https://github.com/hzijone/javascript_module js 用对象的方式实现组件化. 1.对一个对象里增加方法的方式: 把模块的变量传给函数, ...
- SpringBoot整合定时任务和异步任务处理 3节课
1.SpringBoot定时任务schedule讲解 定时任务应用场景: 简介:讲解什么是定时任务和常见定时任务区别 1.常见定时任务 Java自带的java.util.Timer类 ...
- 2018-2019-2 网络对抗技术 20165227 Exp5 MSF基础应用
2018-2019-2 网络对抗技术 20165227 Exp5 MSF基础应用 Exploit选取 主动攻击:ms17_010_eternalblue(成功) 浏览器攻击: ms10_042_hel ...
- L0/L1/L2范数(转载)
一.首先说一下范数的概念: 向量的范数可以简单形象的理解为向量的长度,或者向量到零点的距离,或者相应的两个点之间的距离. 向量的范数定义:向量的范数是一个函数||x||,满足非负性||x|| > ...
- 在Ubuntu中通过update-alternatives切换软件版本
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun ...