.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 分页的问题

Asp.Net Core 发布到IIS

.Net Core邮件发送之MailKit

更多配置参考:http://www.cnblogs.com/artech/p/asp-net-core-config-01.html

posted @ 2017-06-09 07:50  天马3798  阅读(1948)  评论(0编辑  收藏  举报