.net core 配置包括很多种 例如内存变量、命令行参数、环境变量以及物理文件配置和自定义配置

物理文件配置主要有三种,它们分别是JSON、XML和INI,对应的配置源类型分别是JsonConfigurationSource、XmlConfigurationSource和IniConfigurationSource 这里主要讲JSON的配置

读取配置文件

{

"AllowedHosts": "*",

"Logging": {
                   "IncludeScopes": false,
                   "LogLevel": {
                                 "Default": "Warning"
                                     }
                    }

"Arry": [ { "Name": "zhangsan" }, { "Name": "lisi" }, { "Name": "wangwu" } ]
}

1.使用Key读取

Configuration["AllowedHosts"]; // 结果 *

Configuration["Logging:IncludeScopes"]; // 结果 false

Configuration["Logging:LogLevel:Default"]; // 结果 Warning

Configuration["Arry:0:Name"]; // 结果 zhangsan

小结:读取嵌套的配置,使用冒号隔开;读取数组形式的配置,使用数组的下标索引,0表示第一个。

2.使用GetValue<T>

Configuration.GetValue<string>("AllowedHosts"); // 结果 *

Configuration.GetValue<bool>("Logging:IncludeScopes"); // 结果 false

小结:GetValue方法的泛型形式还有一个GetValue("key",defaultValue)重载。如果key的配置不存在,则为指定的默认值。

3.使用Options

  配置文件

      {

        "Name": "zhangsan",          

         "Age": 22,

        "Company",{

                "Id":1,

                "Address":"中国 北京"

              }
                     }

  public class User

   {

    public string Name { get; set; }

    public int Age { get; set; }

    public class Company

            {

              public int Id {get;set;}

              public string Address{get;set;}

            }

  }

注入:

services.Configure<User>(Configuration);

services.Configure<Company>(Configuration.GetSection("Company"));

services.Configure<Company>(Configuration.GetSection("User:Company"));

读取:

  构造函数读取

 private readonly User _user;
 public GetConfig(IOptions<User> _o
ptions)
 { _user = _option.Value; }
ServiceProvider读取 serviceProvider.GetService<IOptions<User>>().Vlaue
4.使用Bind
var user = new User(); Configuration.Bind(user);
var company=new Company();Configuration.GetSection("Conpany").Bind(company);
4.使用Get<T>
var user = Configuration.Get<User>();或者var commpany = Configuration.GetSection("Company").Get<Company>();
 

最新文章

  1. 记一次酷派尚锋Y75刷机
  2. css 小三角
  3. 图片延迟加载(用jq自己写的方法)
  4. Win7 桌面应用图标不见了
  5. DSP基础学习-ADC同步采样
  6. Android telnet RPi 2B
  7. PHP 判断从表单提交的值是否为空
  8. 【Java】String,StringBuffer与StringBuilder的区别??
  9. asp.net弹出多个模态窗口
  10. Java中的条件编译(转)
  11. ashx文件中使用session提示“未将对象引用设置到对象的实例”
  12. thinkcmf,thinkphp,表格导入(PHPexcel)的实现,新手向
  13. 前端测试框架Jest系列教程 -- Expect(验证)
  14. AMD/CMD/CommonJs到底是什么?它们有什么区别?
  15. python之全局变量和局部变量
  16. 【详解】WebSocket相关知识整理
  17. Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列
  18. hashcode、equals和 ==详解
  19. 阅读 RAM-Based Shift Register(ALTSHIFT_TAPS) IP Core User Guide
  20. TensorFlow 之 手写数字识别MNIST

热门文章

  1. KMP,深入讲解next数组的求解(转载)
  2. 安装Inotify-tools
  3. Mixed Content: xxx This request has been blocked; the content must be served over HTTPS.
  4. 安装Oracle Database 11g 找不到文件“WFMLRSVCApp.ear” .
  5. Golang 笔记 1 基础、基本数据类型
  6. springboot 启动的时候报错 Error creating bean with name &#39;solrClient&#39;
  7. CF 977E Cyclic Components
  8. 初始化后,composer安装
  9. gym101808 E
  10. ubuntu下安装go环境