public class ConfigInfoManager {
static string dllRealPath = ConfigurationManager.AppSettings["DLLRealPath"];
public string GetAppSettingValue(string key) {
string value = null;
var SourceFullPath = new StackTrace().GetFrame(1).GetMethod().ReflectedType;
var codeBase = SourceFullPath.Assembly.CodeBase;
string dllFullName = codeBase.Substring(codeBase.LastIndexOf('/') + 1);
string dllName = dllFullName.Split('.')[0];
ExeConfigurationFileMap ecf = new ExeConfigurationFileMap();
ecf.ExeConfigFilename = dllRealPath+ dllName+".dll.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(ecf, ConfigurationUserLevel.None);
value = config.AppSettings.Settings[key].Value;
return value;
}
}
比如:ConfigInfoManager所在的类库被其他类库引用,然后实例化ConfigInfoManager,通过上面的方法,可以获得类库的dll地址。
特殊需求吧!项目中用上了,遂记录下。