.NET Core 配置文件
老一代配置系统
1,XML格式 格式单一。
2,配置信息Kye,只能一维化配置
3,框架信息和应用程序信息混合到一起

应用程序中是 App.config
web项目中 web.config
使用程序集 System.Configuration
新一代配置系统
1支持配置文件格式 json xml init 环境变量 memory
2参数热加载
3参数多维
nuget包
Microsoft.Extensions.Configuration
主要是用上面的
下面的是对应不同文件类型的扩展 都是扩展方法
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration.Xml
Microsoft.Extensions.Configuration.Init
Microsoft.Extensions.Configuration.EnvironmentVariables
下面的是进行模型转换的
Microsoft.Extensions.Configuration.Binder
数据读取

//1 : 运算符 层级管理 数据的话用索引
var dcf1 = config["mysql:host"];
Console.WriteLine(dcf1);
var dcf11 = config["shopidlist:1:entid"];
Console.WriteLine(dcf11); //2 getsection getsection("")[""]
var dcf2 = config.GetSection("mysql").GetSection("host").Value;
Console.WriteLine(dcf2);
var dcf21 = config.GetSection("mysql:host").Value;
Console.WriteLine(dcf21);
var dcf3 = config.GetSection("mysql")["host"];
Console.WriteLine(dcf3);
var dcf4 = config.GetSection("shopidlist").GetSection("")["entid"];
Console.WriteLine(dcf4);
var dcf5 = config.GetSection("shopidlist").GetSection("").GetSection("entid").Value;
Console.WriteLine(dcf5);
//3强类型读取 Microsoft.Extensions.Configuration.Binder
//开发中常用强类型
var dcf6 = config.GetValue<int>("shopidlist:1:entid");
Console.WriteLine(dcf6); Rootobject dcf7 = new Rootobject();
config.Bind(dcf7);
Console.WriteLine(dcf7.mysql.host);
弱类型方式读取
<1>: ':'运算符 mysql:host
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory)
.AddJsonFile($"appsettings.json", optional: true, reloadOnChange: true)
//.AddXmlFile("appsettings.xml")
//.AddEnvironmentVariables()
.Build();
var info = configuration["shopidlist:0:entid"];
{
"mysql": {
"host": "192.168.23.1",
"port": 3306
},
"shopidlist": [
{ "entid": 20 },
{ "entid": 25 }
]
}
<2> GetSection (不同的人,不同的使用习惯) getSection("mysql")["host"]
//var info = configuration.GetSection("shopidlist").GetSection("1").GetSection("entid").Value;
var info = configuration.GetSection("shopidlist").GetSection("1")["entid"];
public IConfigurationSection GetSection(string key)
{
string[] textArray1 = new string[] { this.Path, key };
return this._root.GetSection(ConfigurationPath.Combine(textArray1));
}
强类型方式读取 : Microsoft.Extensions.Configuration.Binder
<1> GetValue
var info = configuration.GetValue<int>("mysql:port");
public static object GetValue(this IConfiguration configuration, Type type, string key, object defaultValue)
{
string str = configuration.GetSection(key).Value;
if (str != null)
{
return ConvertValue(type, str);
}
return defaultValue;
}
<2> 配置映射为实体类Bind,Get<T>
Rootobject rootobject = new Rootobject();
configuration.Bind(rootobject);
Configuration.GetSection("Position").Get<PositionOptions>();
StartUp类中 public void ConfigureServices(IServiceCollection services)
{
services.Configure<PositionOptions>(Configuration.GetSection("Position"));
services.AddRazorPages();
} 其他类注入
public class Test2Model : PageModel
{
private readonly PositionOptions _options; public Test2Model(IOptions<PositionOptions> options)
{
_options = options.Value;
} public ContentResult OnGet()
{
return Content($"Title: {_options.Title} \n" +
$"Name: {_options.Name}");
}
}
.NET Core 配置文件的更多相关文章
- .NET Core配置文件加载与DI注入配置数据
.NET Core配置文件 在以前.NET中配置文件都是以App.config / Web.config等XML格式的配置文件,而.NET Core中建议使用以JSON为格式的配置文件,因为使用起来更 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件
asp.net core配置文件 读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...
- [转].NET Core配置文件加载与DI注入配置数据
本文转自:http://www.cnblogs.com/skig/p/6079187.html .NET Core配置文件 在以前.NET中配置文件都是以App.config / Web.config ...
- .Net Core配置文件
.Net Core下如何管理配置文件 一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensi ...
- .Net Core配置文件介绍
Net Core中的配置文件介绍 1 简单回顾.Net Framework配置文件 .Net Core中的配置文件操作较.Net Framework有了很大的改动.介绍.Net Core中配置文件操作 ...
- asp.net core配置文件
读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettings>节点.它的数据格式变成了j ...
- .NET 黑魔法 - asp.net core 配置文件的"对象存储"
来,全都是干货. 我们都知道在Framework版本的mvc项目中,配置数据是通过web.config里的appSettings节点配置,我们不得不写一些读取配置文件字符串的类,比如保存在静态的变量中 ...
- .Net Core配置文件读取整理
一 .配置文件说明 1.配置,主要是 指在程序中使用的一些特殊参数,并且大多数 仅在程序启动的之后指定不需要修改. 2.在以前.Net项目中配置文件主要指app.config或web.config,但 ...
- ASP.NET Core 配置文件(无处不在的依赖注入)
前烟: .NET Core 中取消了以往的 XML 节点配置文件,改用了 *.json 格式. 在 Startup.cs 文件中,构造方法 build appsetting.json 文件, 本文主要 ...
- ASP.NET Core 配置文件
在ASP.NET Core 中,应用程序配置数据可以使用JSON, XML 和 INI格式 和内置环境变量,命令行参数或内存中的集合. 1.如何获取和设置配置 ASP.NET Core配置系统针对以前 ...
随机推荐
- Docker 常用命令,自用,持续更
1.进入容器 docker exec -it 容器id /bin/bash docker exec -it db30f533ee1b /bin/bash 2.复制文件到容器 docker cp 文件路 ...
- struts的带参数结果集
action在forward过程中共享一个值栈,也就是一次request只有一个值栈,服务器端的forward对于客户端来说就是一次request,在forward过程就没必要再传参数了. 总结也就是 ...
- fmex挂单挖矿
最近fmex上线挂单挖矿,针对挂单写了个程序,"跟随盘口,避免成交",0成本薅羊毛. 代码在 https://github.com/xiaoxiaoleo/fmexminer 使用 ...
- iTunes Connect上传APP屏幕快照图片失败 - 您必须上传有效的屏幕快照。
您必须上传有效的屏幕快照. 原因很简单:这个屏幕快照 要用 iPhone截屏才可以,你自已随便在电脑上截个图肯定不行 //--------------------------------------- ...
- springboot整合vue实现上传下载文件
https://blog.csdn.net/yhhyhhyhhyhh/article/details/89888953 文章目录 springboot整合vue实现上传下载文件 1上传下载文件api文 ...
- 磁盘性能指标--IOPS与吞吐量
磁盘性能指标--IOPS---------------------------------------------------------- IOPS (Input/Output Per ...
- Unix下可用的五种 I/O 模型
介绍 当TCP客户端同时处理两个输入时:标准输入和TCP套接字,当客户端fgets(在标准输入上)被阻塞并且服务器进程被终止时,我们遇到了问题.服务器TCP正确地将FIN发送到客户端TCP,但由于客户 ...
- Android输入法遮挡了输入框,使用android:fitsSystemWindows="true"后界面顶部出现白条解决方案
我的最外层是LinearLayout,自定义CustomLinearLayout继承LinearLayout,重写fitSystemWindows和onApplyWindowInsets两个方法: p ...
- 【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ----------------------------------------- ...
- C++11智能指针之std::unique_ptr
C++11智能指针之std::unique_ptr uniqut_ptr是一种对资源具有排他性拥有权的智能指针,即一个对象资源只能同时被一个unique_ptr指向. 一.初始化方式 通过new云 ...