.Net Core配置文件读取整理
一 、配置文件说明
1.配置,主要是 指在程序中使用的一些特殊参数,并且大多数 仅在程序启动的之后指定不需要修改。
2.在以前.Net项目中配置文件主要指app.config或web.config,但是在.Net Core中对 配置 进行 了更 广泛的定义。
从现在的版本来看 使用json作为配置优先使用 。
MemoryConfigurationProvider
EnvironmentVariablesConfigurationProvider
CommandLineConfigurationProvider
JsonConfigurationProvider
XmlConfiguationProvider
IniConfigurationProvider
自定义ConfigurationProvider
3.配置的树结构主要 有Configuration、ConfigurationProvider和ConfigurationBuilder三个核心 对象。
Configuration反之实现 IConfiguration接口的对象用于对接点的获取 ,例如:ConfigurationRoot,ConfigurationSection.
ConfigurationProvider是对实现IConfigurationProvider接口的所有类型及其 对象的统称 ,用于 将原始结构转换成物理结构。
ConfigurationBuilder泛指实现了IConfigurationBuilder接口 的类型及其对象,它在配置 类型中就是 利用 注册的 ConfigurationProvider提取转换成数据字典 的配置并创建 对应的Configuration对象,具体来说 创建的是一个 实现 配置树的ConfigurationRoot对象 。
4.新版的配置系统,提供了配置同步功能等
二、Json配置文件读取示例
1.对json配置文件读取操作依赖的Nuget包
Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.Json
2.加载配置文件,创建Configuration对象
IConfigurationBuilder builder = new ConfigurationBuilder(); //不指定配置文件路径,则默认是 当前Dll的目录 //builder.SetBasePath(@"K:\CoreSolution\ConfigOne\ConfigOne"); /* * 还有 一种处理方式就是,将本文件每次 生成是输出到生成文件中 * 右键文件属性将不复制改成‘始终复制’ */ builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); //获取根节点 IConfigurationRoot Configuration = builder.Build();
3.专门用于配置数据库链接字符串
//转门用来配置链接字符串的节点 ConnectionStrings string conStrings = Configuration.GetConnectionString("SqlServerConnection"); Console.WriteLine(conStrings);
{ "ConnectionStrings": { "SqlServerConnection": "Server=.;Database=db_wkmvc;User ID=sa_wkmvc;Password=123456;" }, "Name": "test" }
4.获取节点值
//获取节点值 IConfigurationSection section1 = Configuration.GetSection("Name"); Console.WriteLine(section1.Value); //获取节点 对象 IConfigurationSection section2 = Configuration.GetSection("ConnectionStrings"); IConfigurationSection section3 = section2.GetSection("SqlServerConnection"); Console.WriteLine(section3.Value); //如果节点不存在则返回空字符串 IConfigurationSection section4 = Configuration.GetSection("NoName"); Console.WriteLine(section4.Value); section4.Value = "张三丰";
更多:
EF Core 1.0 和 SQLServer 2008 分页的问题
更多配置参考:http://www.cnblogs.com/artech/p/asp-net-core-config-01.html