ASP.NET Core-カスタム構成ソースケース
5248 ワード
コンフィギュレーション関連オブジェクト:コンフィギュレーション、コンフィギュレーションビルダー、コンフィギュレーションソース、コンフィギュレーションプロバイダー.コンフィギュレーションオブジェクトは構成情報を担持している.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;
}
}
未完待続...