ASP.NET Core appsettings.json 文件
ASP.NET Core appsettings.json 文件
在本节中,我们将讨论 ASP.NET Core 项目中appsettings.json文件的重要性。
在以前的 ASP.NET 版本中,我们将应用程序配置设置(例如数据库连接字符串)存储在web.config文件中。 在 Asp.Net Core 中, 应用程序配置设置可以来自以下不同的配置源。
- 文件(appsettings.json, appsettings..json)
Environment环境不同,托管在对应环境。 - User secrets (用户机密)
- Environment variables (环境变量)
- Command-line arguments (命令行参数)
appsettings.json文件: 我们的项目是通过 Asp.net Core 预制的"空"模板创建的,所以我们的项目中已经有一个 appsettings.json 的文件了。 我们可以对文件进行如下修改,补充一个MyKey的键值对:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"MyKey": " appsettings.json中Mykey的值"
}
访问配置信息
若要访问 "Startup " 类中的配置信息, 请注入框架提供的 IConfiguration服务。Startup类位于 startup. cs 文件中。
public class Startup
{
private IConfiguration _configuration;
//注意,我们在这里使用了依赖注入
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync(_configuration["MyKey"]);
});
}
}
依赖注入
在以前版本的 ASP.NET 中,依赖注入是可选的,要配置它,我们必须使用像 Ninject,autofac、castle windsor 等第三方框架。
在 asp. net Core 中, 依赖注入是不可或缺的一部分。依赖注入能使我们能够创建低耦合、可扩展且易于测试的系统。
我们将在即将推出的视频中详细讨论依赖注入,尽情期待。
ASP.NET Core IConfiguration 服务
IConfiguration服务是为了从 asp.net Core 中的所有各种配置源读取配置信息而设计的。- 如果在多个配置源中具有相同密钥名称的配置设置,简单来说就是重名了,则后面的配置源将覆盖先前的配置源 。
- 静态类
WebHost的CreateDefaultBuilder()方法在应用程序启动时会自动去调用,按特定顺序读取配置源。 - 要查看配置源的读取顺序,请查看以下链接上的
ConfigureAppConfiguration()方法 https://github.com/aspnet/MetaPackages/blob/release/2.2/src/Microsoft.AspNetCore/WebHost.cs
检查文件后,您将看到,以下是读取各种配置源的默认顺序
- appsettings.json,
- appsettings..json
- 用户机密
- 环境变量 5.命令行参数
如果您想要改变他们的调用顺序,甚至往里面添加属于自己的自定义配置信息,我们将在后面的课程中讨论如何自定义配置源。
小结
所以翻源代码也没有那么可怕嘛
///<summary>
///Initializes a new instance of the <see cref="WebHostBuilder"/> class with pre-configured defaults using typed Startup.
///</summary>
///<remarks>
/// The following defaults are applied to the returned <see cref="WebHostBuilder"/>:
/// use Kestrel as the web server and configure it using the application's configuration providers,
/// set the <see cref="IHostingEnvironment.ContentRootPath"/> to the result of <see cref="Directory.GetCurrentDirectory()"/>,
/// load <see cref="IConfiguration"/> from 'appsettings.json' and 'appsettings.[<see cref="IHostingEnvironment.EnvironmentName"/>].json',
/// load <see cref="IConfiguration"/> from User Secrets when <see cref="IHostingEnvironment.EnvironmentName"/> is 'Development' using the entry assembly,
/// load <see cref="IConfiguration"/> from environment variables,
/// load <see cref="IConfiguration"/> from supplied command line args,
/// configure the <see cref="ILoggerFactory"/> to log to the console and debug output,
/// enable IIS integration.
///</remarks>
///<typeparam name ="TStartup">The type containing the startup methods for the application.</typeparam>
///<param name="args">The command line args.</param>
///<returns>The initialized <see cref="IWebHostBuilder"/>.</returns>
public static IWebHostBuilder CreateDefaultBuilder<TStartup>(string[] args) where TStartup : class =>
CreateDefaultBuilder(args).UseStartup<TStartup>();
欢迎添加个人微信号:Like若所思。
欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

ASP.NET Core appsettings.json 文件的更多相关文章
- ASP.NET Core launchsettings.json 文件
ASP.NET Core launchsettings.json 文件 在本节中,我们将讨论在 ASP.NET Core 项目中launchsettings.json文件的重要性. launchset ...
- [转]Setting the NLog database connection string in the ASP.NET Core appsettings.json
本文转自:https://damienbod.com/2016/09/22/setting-the-nlog-database-connection-string-in-the-asp-net-cor ...
- ASP.NET Core 在 JSON 文件中配置依赖注入
前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...
- 转载:ASP.NET Core 在 JSON 文件中配置依赖注入
在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等)时候,都是提供了专有的接口以供使用第三方的依赖注入组件,比如我们常用的会使用 Autofac.Untiy.Stri ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
基于 Vue.js 之 iView UI 框架非工程化实践记要 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...
- ASP.NET Core 返回 Json DateTime 格式
ASP.NET Core 返回 Json 格式的时候,如果返回数据中有DateTime类型,如何自定义其格式呢?配置如下: services.AddMvc().AddJsonOptions(opt = ...
- ASP.NET Core 中的文件上传
ASP.NET Core上传文件 ASP.NET Core使用IFormFile来读取上传的文件内容,然后将数据写入到磁盘或其它存储空间. 添加FileUpload模型,用来接收上传的文件内容. pu ...
- asp.net core配置下载文件
asp.net core的wwwroot文件夹下默认时保存静态文件的地方,外面可以直接访问,但是如果是一些无法识别的后缀文件,如(.apk),会报错404 如果想要实现下载这些文件,在配置静态文件中间 ...
- .net core 读取appsettings.json 文件中文乱码的问题
解决办法:设置高级保存选项 第一步:在工具栏找到自定义选项 第二步:添加高级保存选项Advanced save options 第三步:在Appsettings.json页面操作
随机推荐
- 2019 Python100道 面试 题,你会几道?
0 遇到过得反爬虫策略以及解决方法? 1.通过headers反爬虫 2.基于用户行为的发爬虫:(同一IP短时间内访问的频率) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成 ...
- RV32FDQ/RV64RDQ指令集(2)
下面我们逐个看下每个指令的细节: fadd.s fadd.s rd, rs1, rs2 //f [rd] = f [rs1] + f [rs2]单精度浮点加(Floating-point Ad ...
- 重新安装和更新所有的 nuget包
重新安装指定项目中所有的 nuget 包 Update-Package -ProjectName MyProject –reinstall 更新指定项目中所有的 nuget 包 Update-Pack ...
- 如果下载老版本的Xcode
打开:https://developer.apple.com/download/more/,选择符合自己的Xcode版本即可.
- 【JavaWeb】实现二级联动菜单
实现效果 频道信息 package demo; public class Channel { private String code; //频道编码 private String name; //频道 ...
- 【LeetCode】746. 使用最小花费爬楼梯
使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始). 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或 ...
- python基础-并发编程02
并发编程 子进程回收的两种方式 join()让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源 from multiprocessing import Process import ti ...
- tcp粘包、解决粘包问题
目录 subproess模块 TCP粘包问题 粘包两种情况 解决粘包问题 struct模块的使用 使用struct模块解决粘包 优化解决粘包问题 上传大文件 服务端 客户端 UDP协议 upd套接字 ...
- [日常] 安装windows+deepin双系统
我的测试电脑上安装了三个系统,分别是win7 , ubuntu16.04 ,deepin15.11下面的步骤是安装deepin系统的过程 1.制作启动u盘,直接使用官方工具制作就可以了,我的已经制作好 ...
- Ubuntu 18.04安装Conda、Jupyter Notebook、Anaconda
1.Conda是一个开源的软件包管理系统和环境管理系统,它可以作为单独的纯净工具安装在系统环境中,有的python库无法用conda获得时,conda允许在conda环境中利用Pip获取包文件.可以将 ...