• .net core Configuration 配置


    .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> _options) 
     { _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>();
     
  • 相关阅读:
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    得益于AI,这五个行业岗位需求将呈现显著增长趋势
    得益于AI,这五个行业岗位需求将呈现显著增长趋势
    Python实现二叉堆
    Python实现二叉堆
    ubuntu14.04安装OpenVirteX
    ubuntu下sh文件使用
  • 原文地址:https://www.cnblogs.com/Tony100/p/9317598.html
Copyright © 2020-2023  润新知