ASP.NET Core- 맞춤형 구성 소스 사례

5271 단어
Configuration, ConfigurationBuilder 및 ConfigurationSource, ConfigurationProvider와 관련된 여러 객체를 구성합니다.Configuration 객체는 구성 정보를 호스팅합니다.ConfigurationProvider는 정보의 원시 데이터 원본을 설정하는 공급자입니다.둘 사이의 커뮤니케이션은 Configuration Builder에서 수행되며, Configuration Provider를 사용하여 소스 데이터를 추출하여 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;
            }
        }

 
 
 
 
미완성

좋은 웹페이지 즐겨찾기