Asp.Net Core入门之配置文件
ASP.NET Core配置框架已内建支持 JSON、XML 和 INI 配置文件,内存配置(直接通过代码设置值),环境变量配置等方式配置参数。
本文主要和大家讲一下我们在项目中常用的以配置文件的方式进行配置。本文以.NetCore2.2为例
配置文件包含了如下几种常用方式。
1.使用ASP.NET Core框架自带的IConfiguration应用程序配置,通过构造函数的方式注入并使用选择模式使用配置参数:Configuration[参数名称]
2.使用选项IOptions和配置对象方式
当你创建了一个Web API应用程序的时候,ASP.NET Core框架会默认为你提供一个配置文件:appsettings.json,并且框架默认指向了该配置文件;但是当你创建例如控制台应用程序的时候,可能就需要我们手动添加配置文件,并手动指向该配置文件。
指定项目配置文件方式:
在项目的Program文件中,添加ConfigureAppConfiguration中的代码:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostcontext, config) =>
{
//获取项目环境
var env = hostcontext.HostingEnvironment;
config.SetBasePath(env.ContentRootPath);
//指定项目配置文件 属性reloadOnChange表示配置文件发生变化的时候,项目自动重新加载。
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
})
.UseStartup<Startup>();
对于指定多配置环境的项目(主要有开发环境Development和生产环境Production),可使用如下方式:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostcontext, config) =>
{
//获取项目环境
var env = hostcontext.HostingEnvironment;
config.SetBasePath(env.ContentRootPath);
//指定项目配置文件 属性reloadOnChange表示配置文件发生变化的时候,项目自动重新加载。
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
//指定项目不同环境下使用哪个配置文件(env.EnvironmentName主要有开发环境Development和生成环境Production),对于指定环境的配置文件非常有用
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
//启用多环境配置
config.AddEnvironmentVariables();
})
.UseStartup<Startup>();
指定配置文件之后,我们便可以具体使用配置参数:
针对如下配置文件appsettings.json:获取WebOptions—Name节点值
{
"WebOptions": {
"Name": "Production"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
}
}
方式一,通过构造函数的方式注入IConfiguration配置接口,并使用
public class Test : ITest
{
private readonly IConfiguration configuration;
//构造函数方式注入
public Test(IConfiguration _configuration)
{
configuration = _configuration;
}
public Task<string> Get()
{
//以选择模式的方式获取配置参数
var name = configuration["WebOptions:Name"];
//返回
return Task.FromResult(name);
}
}
方式二·:使用选项IOptions和配置对象方式
首先,添加配置文件对应的实体类。这里的类名,属性名要对应配置文件参数名称。
public class WebOptions
{
public string Name { get; set; }
}
然后,在Start文件ConfigureServices类中,注册与Option绑定的配置实例。
public void ConfigureServices(IServiceCollection services)
{
//注册WebOptions配置实例
services.Configure<WebOptions>(Configuration.GetSection(nameof(WebOptions)));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
最后,通过构造函数注入Options绑定配置,并使用。
public class Test : ITest
{
private readonly WebOptions webOptions; /// <summary>
/// 构造函数注入
/// </summary>
/// <param name="_webOptions"></param>
public Test(IOptions<WebOptions> _webOptions)
{
webOptions = _webOptions.Value;
} public Task<string> Get()
{
//以对象的方式获取参数值
var name = webOptions.Name;
return Task.FromResult(name);
}
}
好了,关于ASP.NET Core中常用的配置文件参数配置方式就介绍到这里。
Asp.Net Core入门之配置文件的更多相关文章
- ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...
- CentOS开发ASP.NET Core入门教程
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...
- ASP.NET Core入门(一)
大家好,很荣幸您点了开此篇文章,和我一起来学习ASP.NET Core,此篇文字为<ASP.NET Core入门>系列中的第一篇,本系列将以一个博客系统为例,从第一行代码,到系统发布上线( ...
- 【翻译】ASP.NET Core 入门
ASP.NET Core 入门 原文地址:Introduction to ASP.NET Core 译文地址:asp.net core 简介 翻译:ganqiyin ...
- ASP.NET CORE 入门教程(附源码)
ASP.NET CORE 入门教程 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 ...
- Asp.net Core 入门实战
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个合集,方便一次性Clone 目录 快速入门 安装 一个最小的应用 项目模板 路由 静态文件 ...
- ASP.NET Core开发-读取配置文件Configuration
ASP.NET Core 是如何读取配置文件,今天我们来学习. ASP.NET Core的配置系统已经和之前版本的ASP.NET有所不同了,之前是依赖于System.Configuration和XML ...
- ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...
- ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用
一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目 Visual ...
随机推荐
- 关于SPFA Bellman-Ford Dijkstra Floyd BFS最短路的共同点与区别
关于模板什么的还有算法的具体介绍 戳我 这里我们只做所有最短路的具体分析. 那么同是求解最短路,这些算法到底有什么区别和联系: 对于BFS来说,他没有松弛操作,他的理论思想是从每一点做树形便利,那么时 ...
- uniapp 踩坑
获取数据 可在 onLoad 生命周期中获取数据,接收一个参数 option 为上个页面传递的参数. 点击事件tap代替click 两者都会在点击时触发,但是在web手机端,clikc会有300ms延 ...
- vue后台管理系统介绍
项目GitHub地址:https://github.com/Little-Orange7/cmms-vue 一.简介 很多公司稍微复杂一点的业务,基本上都需要后台管理系统,来对业务进行各个维度的统计. ...
- 多阶段构建Golang程序Docker镜像
Docker简介 Docker是基于Linux容器技术(LXC),使用Go语言实现的开源项目,诞生于2013年,遵循Apache2.0协议.Docker自开源后,受到广泛的关注和讨论. Docker在 ...
- P2816 宋荣子搭积木
描述:https://www.luogu.com.cn/problem/P2816 saruka非常喜欢搭积木,他一共有n块积木.而且saruka的积木很特殊,只能一块块的竖着摞,可以摞很多列.说过s ...
- C - 小明系列故事――捉迷藏 HDU - 4528 bfs +状压 旅游-- 最短路+状压
C - 小明系列故事――捉迷藏 HDU - 4528 这个题目看了一下题解,感觉没有很难,应该是可以自己敲出来的,感觉自己好蠢... 这个是一个bfs 用bfs就很好写了,首先可以预处理出大明和二明能 ...
- Centos7下tomcat关闭异常问题
目录 出错原因 解决方法 出错原因 在阿里云服务器上买的轻量级应用服务器,装上了tomcat,访问tomcat自带的首页,8080端口,第一次启动成功了,关闭也正常,但在服务器重启后,或者第二次启 ...
- 花了几天入门Storm,上了一版,全是Bug
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 听说过大数据的同学应该都听说过Storm吧?其实 ...
- Linux 内核工作队列之work_struct 学习总结
前言 编写Linux驱动的时候对于work_struct的使用还是很普遍的,很早之前就在阅读驱动源码的时候就看到了它的踪影,根据其命名大概知道了它的具体作用,但是仍然不知所以,同时,伴随出现的还有de ...
- Algorithms - Quicksort - 快速排序算法
相关概念 快速排序法 Quicksort 也是一个分治思想的算法. 对一个子数组 A[p: r] 进行快速排序的三步分治过程: 1, 分解. 将数组 A[p : r] 被划分为两个子数组(可能为空) ...