读取配置文件

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配置文件的更多相关文章

  1. ASP.NET Core 配置文件(无处不在的依赖注入)

    前烟: .NET Core 中取消了以往的 XML 节点配置文件,改用了 *.json 格式. 在 Startup.cs 文件中,构造方法 build appsetting.json 文件, 本文主要 ...

  2. ASP.NET Core 配置文件

    在ASP.NET Core 中,应用程序配置数据可以使用JSON, XML 和 INI格式 和内置环境变量,命令行参数或内存中的集合. 1.如何获取和设置配置 ASP.NET Core配置系统针对以前 ...

  3. .NET 黑魔法 - asp.net core 配置文件的"对象存储"

    来,全都是干货. 我们都知道在Framework版本的mvc项目中,配置数据是通过web.config里的appSettings节点配置,我们不得不写一些读取配置文件字符串的类,比如保存在静态的变量中 ...

  4. asp.net core 配置文件动态更新

    IOptions<T> //站点启动后,获取到的值永远不变 IOptionsSnapshot<T> //站点启动后,每次获取到的值都是配置文件里的最新值 (reloadOnCh ...

  5. net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件

    asp.net core配置文件   读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...

  6. 【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生 ...

  7. 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们之前的Asp.net mvc 开发中,一提到配置文件,我们不由的想到 web.config 和 app.config,在 ...

  8. ASP.NET Core开发-读取配置文件Configuration

    ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ...

  9. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

随机推荐

  1. 汉化DotNetBar中控件的系统文本

    作者:ComponentCN 出处:www.componentcn.com 2011年11月02日 阅读: DotNetBar很多子控件的系统文本.提示信息等都是可以本地化的,可以转化为多种语言,控件 ...

  2. Linux配置Tomcat步骤mv apache-tomcat-7.0.82 tomcat

    (一)安装JAVA1.检查java环境 java -version,不存在安装.2.yum -y list java* Loaded plugins: fastestmirror, langpacks ...

  3. 拿webshell权限方法(一)

    概念 Webshell就是以asp,php,jsp或cgi等网页文件形式存在的一种命令执行环境,也可以将其称为一种网页后门. Access数据库拿webshell 首先看是否能找到网站漏洞进行网站的后 ...

  4. Linux 重启网卡失败 Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.

    linux下重启网卡使用命令 : service network restart 时报错: [root@slave01 hadoop]# service network restart Startin ...

  5. elasticsearch 单机多实例

    elasticsearch 配置单机器多实例 host: - - path data: /opt/elasticsearch/data/node1 /opt/elasticsearch/data/no ...

  6. [HEOI2015]定价 (贪心)

    分类讨论大法好! \(solution:\) 先说一下我对这个题目的态度: 首先这一题是贪心,这个十分明显,看了一眼其他题解都是十分优秀的贪心,可是大家都没有想过吗:你们贪心都是在区间\([l,r]\ ...

  7. A - 低阶入门膜法 - K-th Number (主席树查询区间第k小)

    题目链接:https://cn.vjudge.net/contest/284294#problem/A 题目大意:主席树查询区间第k小. 具体思路:主席树入门. AC代码: #include<i ...

  8. B - Fuzzy Search (FFT)

    题目链接:https://cn.vjudge.net/contest/281959#problem/B 题目大意:给你n,m,k.然后输入两个字符串,n代表第一个字符串s1,m代表第二个字符串s2,然 ...

  9. drozer工具的安装与使用:之一安装篇

    本教程针对于Windows平台下drozer的安装与使用   使用该工具需要JDK的支持,所以使用此工具之前请自行安装 JDK(如有问题的请自行百度其他教程,这里就不赘述了)   还需要安卓调试工具a ...

  10. 爬虫之验证码IP攻防心得——小总结

    小前言: 一般来说,现在很多平台注册.登录的时候会涉及到验证码,这样做的目的是为了防止恶意程序恶意访问,从而给服务器造成一定的压力,会浪费一定的资源,大家也都知道,现在这种短信平台,邮箱平台等都是收费 ...