zoukankan      html  css  js  c++  java
  • asp.net core配置项示例代码

    1、IConfigurationSource:表示一个配置源,其Build方法生成的IConfigurationProvider用于从当前配置源中读取key-value值(TryGey读取、Set设置键值、Load加载配置源到key-value集合、GetChildKey获取根据前缀key获取子key集合,并将earlierKeys添加到返回的字符串集合中)。IConfigurationProvider有直接实现类ConfigurationProvider,自定义IConfigurationProvider的时候,一般直接继承ConfigurationProvider类。

    image
    image

    2、IConfigurationBuilder 用于 IConfigurationRoot(从IConfiguration继承) 对象,这也是最终供我们使用的key-value集合 。IConfigurationBuilder接口中 Sources 属性维护了一系列的 IConfigurationSource 列表。Properties 属性维护了和文件相关的字典。

    image

    image

    image

    static void Main(string[] args)
            {
                //1、创建IConfigurationBuilder
                IConfigurationBuilder builder = new ConfigurationBuilder();
    
                //2、创建配置源并添加到Builder中 IConfigurationSource
    
                //2、1系统自带的IConfigurationSource
                List<KeyValuePair<string, string>> InitialData = new List<KeyValuePair<string, string>>();
                InitialData.Add(new KeyValuePair<string, string>("name", "caoruipeng"));
                InitialData.Add(new KeyValuePair<string, string>("info:age", "29"));
                InitialData.Add(new KeyValuePair<string, string>("info:school", "北华大学"));
                InitialData.Add(new KeyValuePair<string, string>("user:name", "北华大学"));
                IConfigurationSource source = new MemoryConfigurationSource() { InitialData = InitialData };
                builder.Add(source);
    
                //2、2自定义IConfigurationSource
                IDictionary<string, string> data = new Dictionary<string, string>();
                data.Add("dbkey", "dbvalue");
                IConfigurationSource dbSource = new DBConfigurationSource(data);
                builder.Add(dbSource);
    
                //3、创建key-value集合
                IConfigurationRoot configuration = builder.Build();
    
                //4、获取key-value
                string value = configuration["name"];
                value = configuration.GetValue<string>("name");
                Console.WriteLine($"key:name,value:{value}");
                value = configuration.GetValue<string>("dbkey");
                Console.WriteLine($"key:dbkey,value:{value}");
    
                IConfigurationSection section = configuration.GetSection("info");
            }
        /// <summary>
        /// 自定义配置源
        /// </summary>
        public class DBConfigurationSource : IConfigurationSource
        {
            IDictionary<string, string> data = new Dictionary<string, string>();
            public DBConfigurationSource(IDictionary<string, string> data)
            {
                this.data = data;
            }
            public IConfigurationProvider Build(IConfigurationBuilder builder)
            {
                return new DBConfigurationProvider(data);
            }
        }
        /// <summary>
        /// 自定义配置源的Provider,用于从配置源中读取key-value值
        /// </summary>
        public class DBConfigurationProvider : ConfigurationProvider
        {
            public DBConfigurationProvider(IDictionary<string, string> data)
            {
                Data = data;
            }
            public override void Load()
            {
                base.Load();
            }
        }
    

    3、系统自带的配置源 也就是IConfigurationSource的实现类

    3.1 MemoryConfigurationSource:从内存中加载读取key-value。

    3.2 ChainedConfigurationSource:直接维护了一个IConfiguration对象,通过IConfiguration加载读取key-value配置。

    3.3 CommandLineConfigurationSource:从命令行加载读取key-value,从命令行读取命令,按 = 分割为key-value。

    3.4 EnvironmentVariablesConfigurationSource:从环境变量中加载读取key-value。

    3.5 FileConfigurationSource:抽象类,从文件中加载配置

    3.5.1 JsonConfigurationSource : FileConfigurationSource:从json配置文件中加载配置。
    3.5.2 IniConfigurationSource : FileConfigurationSource:从ini配置文件中加载配置
    3.5.3 XmlConfigurationSource : FileConfigurationSource:从xml配置文件中加载配置

    3.6 StreamConfigurationSource:抽象类,从Stream流中加载配置

    3.6.1 JsonStreamConfigurationSource:StreamConfigurationSource:从Json流中加载配置。
    3.6.2 XmlStreamConfigurationSource:StreamConfigurationSource:从xml流中加载配置。

    3.3.3 IniStreamConfigurationSource:StreamConfigurationSource:从ini流中加载配置。

  • 相关阅读:
    Halcon的OCR字符识别算法技巧总结
    Halcon中将16位的图像转化为8位的图像
    Photoshop和Halcon如何锐化彩色图像不伤其颜色
    图像滤波和形态学运算中矩形结构元素的运用
    region、xld有对应的字符串时,将region、xld按照行或列排序的算法实现
    影响形状模板匹配的查找速度的参数分析
    select_region_point和select_region_spatial
    提取线条的lines_color、lines_facet、 lines_gauss算子
    求圆环毛刺凸出高度是否超标的算法实现
    相机拍摄时最重要的三个参数——光圈、快门、ISO
  • 原文地址:https://www.cnblogs.com/caoruipeng/p/15689650.html
Copyright © 2011-2022 走看看