zoukankan      html  css  js  c++  java
  • ASP.NET Core-自定义配置源案例

    配置相关的几个对象:Configuration、ConfigurationBuilder和ConfigurationSource、ConfigurationProvider。
    Configuration对象承载着配置信息;
    ConfigurationProvider则是配置信息原始数据源的提供者;
    两者之间沟通由ConfigurationBuilder来完成,它利用ConfigurationProvider提取源数据将其转换为Configuration对象。



    使用文本文件做数据源
    public class PropertiesConfigurationSource : IConfigurationSource
            {
                public string Path { get; set; }
                public PropertiesConfigurationSource(string path)
                {
                    this.Path = path;
                }
                public IConfigurationProvider Build(IConfigurationBuilder builder)
                {
                    return new PropertiesConfigurationProvider(this.Path);
                }
            }
            public class PropertiesConfigurationProvider : ConfigurationProvider
            {
                public string Path { get; set; }
                public PropertiesConfigurationProvider(string path)
                {
                    this.Path = path;
                }
    
                public override void Load()
                {
                    Dictionary<string, string> dict = new Dictionary<string, string>();
                    string[] lines = File.ReadAllLines(this.Path);
                    string[] pair = null;
                    foreach (var line in lines)
                    {
                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            pair = line.Split('=');
                            if (pair.Length == 2)
                            {
                                dict.TryAdd(pair[0], pair[1]);
                            }
                        }
                    }
                    this.Data = dict;
                }
            }
            public static class ConfigurationBuilderExtension
            {
                public static IConfigurationBuilder AddPropetiesFile(this IConfigurationBuilder configurationBuilder, string path)
                {
                    configurationBuilder.Add(new PropertiesConfigurationSource(path));
                    return configurationBuilder;
                }
            }

    未完待续...

  • 相关阅读:
    ValidationUtils 验证工具
    android获取textview的行数
    自动打开Accesibility Service 可以自动安装APP
    限制EditText最多输入多少汉字
    Android Secret Code
    恢复 混淆后的 stacktrace 文件
    车载系统 降噪处理
    Java常用类库Integer,Character,toCharArray
    Java接口以及匿名内部类,静态代码块
    Java抽象类、继承及多态和适配器的实现
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/12145894.html
Copyright © 2011-2022 走看看