NET Core开发-读取配置文件Configuration
ASP.NET Core开发-读取配置文件Configuration
ASP.NET Core 是如何读取配置文件,今天我们来学习。
ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML配置文件web.config。
新的配置系统支持多种格式的配置文件。
下面我们来以json 格式的配置文件正式开始学习。
我们新建一个ASP.NET Core Web 应用程序,选择无身份验证。

读取配置文件
在项目目录下有个 appsettings.json ,我们先来操作这个文件。
在appsettings.json 添加如下两个节点。

{
"Data": "LineZero",
"ConnectionStrings": {
"DefaultConnection": "数据库1",
"DevConnection": "数据库2"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}

下面我们来读取。由于项目默认已经将该文件加入ConfigurationBuilder 之中,所以我们可以直接来读取。
在 Configure 方法中读取:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
var data = Configuration["Data"];
//两种方式读取
var defaultcon = Configuration.GetConnectionString("DefaultConnection");
var devcon = Configuration["ConnectionStrings:DevConnection"];

调试程序,可以看到数据成功取出。
多环境区分
我们复制一个appsettings.json 然后重命名为 appsettings.Development.json
更改appsettings.Development.json 如下:

{
"Data": "LineZero Development",
"ConnectionStrings": {
"DefaultConnection": "开发数据库1",
"DevConnection": "开发数据库2"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}

然后我们调试程序,你会发现获取到的值变成了Development.json 里的值。

这里就是多环境配置。

public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)//增加环境配置文件,新建项目默认有
.AddEnvironmentVariables();
Configuration = builder.Build();
}

如果我们直接执行读取到的就是appsettings.json 的值,因为直接执行时是 Production 环境。
下面是输出图:
调试时:

dotnet run 时:

对象读取
我们在appsettings.json 及 Development.json 都添加一个 SiteConfig 节点。
"SiteConfig": {
"Name": "LineZero's Blog",
"Info": "ASP.NET Core 开发及跨平台,配置文件读取"
},
然后新建一个SiteConfig 类。
public class SiteConfig
{
public string Name { get; set; }
public string Info { get; set; }
}
首先在 ConfigureServices 中添加Options 及对应配置。

public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
//添加options
services.AddOptions();
services.Configure<SiteConfig>(Configuration.GetSection("SiteConfig"));
}

然后我们在 Controller 中读取。

public class HomeController : Controller
{
public SiteConfig Config; public HomeController(IOptions<SiteConfig> option)
{
Config = option.Value;
} public IActionResult Index()
{
return View(Config);
}
}

对应View Index.cshtml
@model SiteConfig
@{
ViewData["Title"] = Model.Name;
}
<h1>@Model.Name</h1>
<h2>@Model.Info</h2>
执行程序 http://localhost:5000/

NET Core开发-读取配置文件Configuration的更多相关文章
- ASP.NET Core开发-读取配置文件Configuration
ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ...
- ASP.NET Core开发-读取配置文件Configuration appsettings.json
https://www.cnblogs.com/linezero/p/Configuration.html ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配 ...
- .net core 学习 读取配置文件
在空项目中是没有配置文件的,首先要新建一个,配置文件内容如下,下面来读取各个内容 { "ConnectionStrings": { "DefaultConnection& ...
- .net core自定义读取配置文件
新建完成后项目目录下有个 appsettings.json { "Logging": { "LogLevel": { "Default": ...
- .net core 灵活读取配置文件
using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using Syst ...
- asp.net core mvc 读取配置文件appsettings.json
上一篇我们将了读取自定义配置文件.这篇我们讲一下asp.net core mvc里读取自带的配置文件 appsettings.json 首先创建个asp.net core mvc项目,项目里有Prog ...
- .net core中读取配置文件
1)先看丑陋的方法 读取 appsettings.json 然后在 Startup 的 ConfigureServices() 方法中进行注入: public IConfigurationRoot ...
- Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口.这三种注解可以配合着@PropertySou ...
- .NET Core类库中读取配置文件
最近在开发基于.NET Core的NuGet包,遇到一个问题:.NET Core中已经没有ConfigurationManager类,在类库中无法像.NET Framework那样读取App.conf ...
随机推荐
- (原+转)Eclipse中Android调用OpenCv
大部分都是参考下面的网址,如果感觉看起来不舒服,可以直接查看原网址.最后遇到了一点问题: Description Resource Path Location Type E:/~\cod ...
- YUM更换源--yum找不到安装包(转)
公司提供的CentOS VM中,/etc/yum.repos.d 下 只有一个build.repo,其中提供的yum 源只有公司内部的几个源,很多包在这些源中都找不到.于是要添加别的源,下面的帖子中介 ...
- python成长之路第三篇(3)_内置函数及生成器迭代器
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...
- delphi 操作 TWebBrowser 实现自动填表(JQuery脚本与 OleVariant 方法)
版本:DELPHI XE8 操作交通银行信用卡申请表单(2016-03-23),网址如下: https://creditcardapp.bankcomm.com/applynew/front/appl ...
- Delphi利用Webbrowser登陆QQ群文档
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- C#多显示器转换的两种方法——SetWindowPos,Screen
原文 http://blog.csdn.net/hejialin666/article/details/6057551 实现多屏显示目的:一般情况下是一个电脑显示屏,外接一个电视显示屏.在电脑上显示的 ...
- 转:Struts2框架安全缺陷
当前java开发网站,通常不会是纯JSP的,大都使用了java framework. 有了这些framework,让开发人员更加快速的开发出代码,也让代码非常具有可扩展性,那些分层架构的思想,更是深入 ...
- hibernate 查询、二级缓存、连接池
hibernate 查询.二级缓存.连接池 查询: 1) 主键查询 Dept dept = (Dept) session.get(Dept.class, 12); Dept dept = (Dep ...
- Number Sequence(kmp)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- CF 444A(DZY Loves Physics-低密度脂蛋白诱导子图)
A. DZY Loves Physics time limit per test 1 second memory limit per test 256 megabytes input standard ...