使用
#region Configuration使用
{
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddJsonFile("app.json");
Configuration configuration = configurationBuilder.Build();
string value = configuration["json"];
}
#endregion
ConfigurationBuilder类
class ConfigurationBuilder
{
private Configuration configuration = new Configuration();
public ConfigurationBuilder AddJsonFile(string jsonFilePath ,string reload)
{
JsonConfigurationReader jsonConfigurationReader = new JsonConfigurationReader();
jsonConfigurationReader.ReadJsonFile(jsonFilePath);
return this;
}
public ConfigurationBuilder AddXmlFile(string xmlFilePath)
{
return this;
}
public ConfigurationBuilder AddIniFile(string iniFilePath)
{
return this;
}
public Configuration Build()
{
return configuration;
}
}
处理JSON文件相关类
interface IJsonConfigurationReader
{
public IDictionary<string, string> ReadJsonFile(string jsonFilePath);
}
class JsonConfigurationReader : IJsonConfigurationReader
{
public IDictionary<string, string> ReadJsonFile(string jsonFilePath)
{
Console.WriteLine($"{jsonFilePath}:获取json本地文件输入流");
IDictionary<string, string> Data = new Dictionary<string, string>();
Data.Add("json","json文件内容");
return Data;
}
}
class JsonConfigurationReaderProxy : IJsonConfigurationReader
{
private IJsonConfigurationReader jsonConfigurationReader;
public JsonConfigurationReaderProxy(IJsonConfigurationReader jsonConfigurationReader)
{
this.jsonConfigurationReader = jsonConfigurationReader;
}
public IDictionary<string, string> ReadJsonFile(string jsonFilePath)
{
IDictionary<string, string> Data = jsonConfigurationReader.ReadJsonFile(jsonFilePath);
SortData(Data);
return Data;
}
private void SortData(IDictionary<string, string> Data)
{
Console.WriteLine("json配置文件数据排序");
}
}
class JsonConfigurationReaderProxy : IJsonConfigurationReader
{
private IJsonConfigurationReader jsonConfigurationReader;
public JsonConfigurationReaderProxy(IJsonConfigurationReader jsonConfigurationReader)
{
this.jsonConfigurationReader = jsonConfigurationReader;
}
public IDictionary<string, string> ReadJsonFile(string jsonFilePath)
{
RemoteConnection(jsonFilePath);
IDictionary<string, string> Data = jsonConfigurationReader.ReadJsonFile(jsonFilePath);
return Data;
}
private void RemoteConnection(string jsonFilePath)
{
Console.WriteLine($"{jsonFilePath}:进行安全验证");
}
}
Configuration类
class Configuration
{
public IDictionary<string, string> Data { set; get; } = new Dictionary<string, string>();
public void Set(string key,string value)
{
Data.Add(key, value);
}
public string this[string key]
{
get
{
return Data[key];
}
}
}