asp.net core配置项示例代码
1、IConfigurationSource:表示一个配置源,其Build方法生成的IConfigurationProvider用于从当前配置源中读取key-value值(TryGey读取、Set设置键值、Load加载配置源到key-value集合、GetChildKey获取根据前缀key获取子key集合,并将earlierKeys添加到返回的字符串集合中)。IConfigurationProvider有直接实现类ConfigurationProvider,自定义IConfigurationProvider的时候,一般直接继承ConfigurationProvider类。


2、IConfigurationBuilder 用于 IConfigurationRoot(从IConfiguration继承) 对象,这也是最终供我们使用的key-value集合 。IConfigurationBuilder接口中 Sources 属性维护了一系列的 IConfigurationSource 列表。Properties 属性维护了和文件相关的字典。



static void Main(string[] args)
{
//1、创建IConfigurationBuilder
IConfigurationBuilder builder = new ConfigurationBuilder();
//2、创建配置源并添加到Builder中 IConfigurationSource
//2、1系统自带的IConfigurationSource
List<KeyValuePair<string, string>> InitialData = new List<KeyValuePair<string, string>>();
InitialData.Add(new KeyValuePair<string, string>("name", "caoruipeng"));
InitialData.Add(new KeyValuePair<string, string>("info:age", "29"));
InitialData.Add(new KeyValuePair<string, string>("info:school", "北华大学"));
InitialData.Add(new KeyValuePair<string, string>("user:name", "北华大学"));
IConfigurationSource source = new MemoryConfigurationSource() { InitialData = InitialData };
builder.Add(source);
//2、2自定义IConfigurationSource
IDictionary<string, string> data = new Dictionary<string, string>();
data.Add("dbkey", "dbvalue");
IConfigurationSource dbSource = new DBConfigurationSource(data);
builder.Add(dbSource);
//3、创建key-value集合
IConfigurationRoot configuration = builder.Build();
//4、获取key-value
string value = configuration["name"];
value = configuration.GetValue<string>("name");
Console.WriteLine($"key:name,value:{value}");
value = configuration.GetValue<string>("dbkey");
Console.WriteLine($"key:dbkey,value:{value}");
IConfigurationSection section = configuration.GetSection("info");
}
/// <summary>
/// 自定义配置源
/// </summary>
public class DBConfigurationSource : IConfigurationSource
{
IDictionary<string, string> data = new Dictionary<string, string>();
public DBConfigurationSource(IDictionary<string, string> data)
{
this.data = data;
}
public IConfigurationProvider Build(IConfigurationBuilder builder)
{
return new DBConfigurationProvider(data);
}
}
/// <summary>
/// 自定义配置源的Provider,用于从配置源中读取key-value值
/// </summary>
public class DBConfigurationProvider : ConfigurationProvider
{
public DBConfigurationProvider(IDictionary<string, string> data)
{
Data = data;
}
public override void Load()
{
base.Load();
}
}
3、系统自带的配置源 也就是IConfigurationSource的实现类
3.1 MemoryConfigurationSource:从内存中加载读取key-value。
3.2 ChainedConfigurationSource:直接维护了一个IConfiguration对象,通过IConfiguration加载读取key-value配置。
3.3 CommandLineConfigurationSource:从命令行加载读取key-value,从命令行读取命令,按 = 分割为key-value。
3.4 EnvironmentVariablesConfigurationSource:从环境变量中加载读取key-value。
3.5 FileConfigurationSource:抽象类,从文件中加载配置
3.5.1 JsonConfigurationSource : FileConfigurationSource:从json配置文件中加载配置。
3.5.2 IniConfigurationSource : FileConfigurationSource:从ini配置文件中加载配置
3.5.3 XmlConfigurationSource : FileConfigurationSource:从xml配置文件中加载配置
3.6 StreamConfigurationSource:抽象类,从Stream流中加载配置
3.6.1 JsonStreamConfigurationSource:StreamConfigurationSource:从Json流中加载配置。
3.6.2 XmlStreamConfigurationSource:StreamConfigurationSource:从xml流中加载配置。
3.3.3 IniStreamConfigurationSource:StreamConfigurationSource:从ini流中加载配置。
asp.net core配置项示例代码的更多相关文章
- 【译】在 ASP.NET 和 ASP.NET Core 之间共享代码
原文 | Ken 翻译 | 郑子铭 随着 .NET 6 的发布,使用 ASP.NET Core 可以获得更多好处.但是将现有代码迁移到 ASP.NET Core 通常听起来像是一项巨大的投资.今天我们 ...
- asp.net导出excel示例代码
asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary> ); ; ...
- ASP.NET Core Loves JavaScript
前言 在 ASP.NET 团队的 Github 的主页上,有这样一个开源项目叫:"JavaScriptsServices",那么 什么是 JavaScriptsServices 呢 ...
- 我眼中的ASP.NET Core之微服务
### 前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序,想必大家都已经知道了,那就是[eShopOnContainers](https://github.com/dotnet- ...
- 一个Mini的ASP.NET Core框架的实现
一.ASP.NET Core Mini 在2019年1月的微软技术(苏州)俱乐部成立大会上,蒋金楠老师(大内老A)分享了一个名为“ASP.NET Core框架揭秘”的课程,他用不到200行的代码实现了 ...
- ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1
一.前言 最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...
- 声明式RESTful客户端在asp.net core中的应用
1 声明式RESTful客户端 声明式服务调用的客户端,常见有安卓的Retrofit.SpringCloud的Feign等,.net有Refit和WebApiClient,这些客户端都是以java或. ...
- ASP.NET Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程 (转载)
阅读目录 在Asp.Net Core 中使用外部登陆(google.微博...) 中间件管道 The Authentication Middleware The Challenge 与认证中间件进行交 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- Asp.Net Core 调用第三方Open API查询物流数据
在我们的业务中不可避免要与第三方的系统进行交互,调用他们提供的API来获取相应的数据,那么对于这样的情况该怎样进行处理呢?下面就结合自己对接跨越速运接口来获取一个发运单完整的物流信息为例来说明如何在A ...
随机推荐
- 百度统一socket长连接组件从0到1的技术实践
本文由百度消息中台团队分享,引用自百度Geek说,原题"百度iOS端长连接组件建设及应用实践",为了帮助理解,本文有修订和改动. 1.引言 在过去的十年里,移动端互联网技术飞速发展 ...
- OpenMMLab AI实战营 第五课笔记
OpenMMLab AI实战营 第五课笔记 目录 OpenMMLab AI实战营 第五课笔记 在气球数据集上训练检测模型 进入 mmdetection 主目录 下载并观察气球数据集 下载训练好的mas ...
- [LC646]最长数对链
题目概述 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面.我们用这种形 ...
- 记录一下关于谷歌浏览器的开发者插件之vue-devtools
在做vue进行开发的时候增加一个浏览器的插件进行开发可以做到游鱼得水,更加的舒适 在这里我留下一个git地址用来下载插件包 https://gitee.com/zhang_banglong/vue-d ...
- 记录以下uniapp写小程序然后进行图片上传压缩
今天记录一下uniapp写小程序上传图片压缩的功能 首先定义上传图片的方法 然后res.tempFilePath[0]就是图片的临时路径 其次定义压缩图片然后获取压缩后图片大小的方法,方法使用canv ...
- Solution -「NEERC 2016」Delight for a Cat 的一个尝试
\(\mathscr{Description}\) Link. 给定 \(n,k,m_s,m_e\) 和两个长为 \(n\) 的序列 \(\{s\},\{e\}\), 选择一个 \(S\sub ...
- Arcgis加载Geoserver矢量切片
原帖地址 洒家废物 - Arcgis加载Geoserver矢量切片 准备点线面图层并发布图层组 此处我准备了石家庄市的县界名称(点).高速公路(线).县界(面),依次发布geoserver服务,创建图 ...
- idea创建一个入门Spring Boot项目(controller层)使用Maven代码管理
springboot的优质开发体验,能够更快速的搭建生产环境的项目.这篇文章就是一个超级简单的入门springboot项目.包含了一些简单的理论和超简单Controller层 [工具] IDEA 全称 ...
- OS:MMU
MMU? 全称:memory management unit [内存管理单元] 是: 1.CPU中用来管理虚拟存储器.物理存储器的控制线路 2.同时也负责虚拟地址映射为物理地址 3.以及提供硬件机制的 ...
- uni-app之页面跳转(点击按钮进行页面跳转)
001==>点击按钮进行页面跳转 <view class="" @tap="gotoLunBo"> 去轮播页 </view> // ...