最近在开发客户端程序和Web程序的时候为了方便都要用到读配置文件的情况,由于这些配置文件只针对于特定的dll文件生效,为了保证程序的一致性和可扩展性得到如下的解决方案供大家学习参考:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace BaiduFaceIdentification
{
/// <summary>
/// 配置帮助类
/// </summary>
public class ConfigHelper
{
private Configuration AppConfig;
public ConfigHelper()
{
var path = AppDomain.CurrentDomain.BaseDirectory;
var name = Assembly.GetExecutingAssembly().GetName().Name;
Console.WriteLine(name);
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap()
{
ExeConfigFilename = path+ "bin//Plugs//" + name + ".dll.config"
};
AppConfig = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
//AppConfig = ConfigurationManager.OpenExeConfiguration(name+".dll");
}
/// <summary>
/// 应用ID
/// </summary>
public string AppId
{
get
{
return AppConfig.AppSettings.Settings["AppId"].Value;
}
}
/// <summary>
/// 应用key
/// </summary>
public string AppKey {
get
{
return AppConfig.AppSettings.Settings["AppKey"].Value;
}
}
/// <summary>
/// 应用密钥
/// </summary>
public string AppSec {
get
{
return AppConfig.AppSettings.Settings["AppSec"].Value;
}
}
/// <summary>
/// 应用密钥
/// </summary>
public string GroupId
{
get
{
return AppConfig.AppSettings.Settings["GroupId"].Value;
}
}
/// <summary>
/// 是否保存图片
/// </summary>
public bool IsSaveImage
{
get
{
return bool.Parse(AppConfig.AppSettings.Settings["IsSaveImage"].Value);
}
}
}
}