程序地带

Asp.Net Core 应用配置


五种读取方式
五种读取方式依赖于 IConfiguration 和 IConfigurationRoot 对象
一、初级写法
//不区分大小写 string connectionString = _configuration["ConnectionString"];
二、绑定配置模型
var config = new Config01();
_configuration.Bind(config);
三、部分绑定
// webSetting为config的子对象var webSetting = new WebSetting();
_configuration.GetSection("WebSetting").Bind(webSetting);
四、注册配置选项的服务
services.Configure<Config01>(_configuration); 
注册完成后,在其他地方就可以通过依赖注入的方式使用了。通过一个 Options<xxx> 对象获取配置
在通过opt.Value.xxx的方式就可以拿到配置的选项 
五、通过IConfigurationRoot读取自定义配置文件(appsettings.json为系统默认的)
先获取IConfigurationRoot对象,剩下的操作同前四。
未解之谜
如果读取不同环境的配置文件??????
即对 appsettings.Development.json 、 appsettings.Production.json 的读取
已知默认情况下Development与Production的优先级均大于appsettings.json。根据这个特性可以将公共配置存储在appsettings.json
开发环境可通过修改环境变量
生产环境通过修改Web.Config
<aspNetCore processPath="dotnet" arguments=".FanjqOneSln.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" hostingModel="inprocess" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
或者在发布前修改FolderProfile.pubxml文件
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>

 


按照读取自定义配置文件的方式读取了多个配置文件???
目前所知:后来者居上
IConfiguration
可以通过构造注入的方式获得

private IConfiguration _configuration;
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
构造注入
IConfigurationRoot
IConfigurationRoot是IConfiguration的一个子接口,一般用于读取自定义配置文件,也可用于读取AspNet Core的默认配置文件,但有点画蛇添足。
通过ConfigurationBuilder可以获得IConfigurationRoot的实例
IConfigurationRoot root = new ConfigurationBuilder().AddJsonFile("").Build();
用法和IConfiguration对象基本一致

 


 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sunpan/p/14246165.html

随机推荐

死锁面试全解

1.什么是死锁所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局。由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法继续向...

qq_36826939 阅读(259)

react(踩坑五)

生命周期详解class组件和hooks生命周期的对比16版本后的生命周期react16.4后使用了新的生命周期,使用getDerivedStateFromProps(挂载阶...

左&耳 阅读(796)

Charles模拟弱网分享

Charles模拟慢速网络我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles对此需求提供了很好的支持。在Charles的菜单上...

一条测试闲鱼 阅读(729)

使用注解实现bean自动装配

要使用注解须知:导入约束配置注解支持在applicationContext.xml配置注解支持:xmlns:context="http://www.spri...

曾木欠 阅读(856)

2020-12-23

WINSOCKRESET解决只能通过IP地址访问目的地址,而域名无法访问的问题。原文http://seawind.blog.51cto.com/6845370/1846355一个困挠好久...

willydong 阅读(704)