zoukankan      html  css  js  c++  java
  • .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:CoreSolutionConfigOneConfigOne");
    /*
        * 还有 一种处理方式就是,将本文件每次 生成是输出到生成文件中 
        * 右键文件属性将不复制改成‘始终复制’
        */
    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

  • 相关阅读:
    Zookeeper全解析——Paxos作为灵魂(转)
    你真的会开发测试框架?
    使用Hypothesis生成测试数据
    poium测试库之JavaScript API封装原理
    PHP接口自动化测试框架实现
    Web项目如何做单元测试
    如何在Appium中使用AI定位
    我写了个项目,帮你学习HTTP接口测试!
    性能测试浅谈
    Web测试框架SeleniumBase
  • 原文地址:https://www.cnblogs.com/tianma3798/p/6970114.html
Copyright © 2011-2022 走看看