映射方法部分代碼如下
Assembly sType = Assembly.LoadFrom(ExeDllName);
Type[] Types = sType.GetTypes();
foreach (Type k in Types)
{
try
{
if (k.BaseType.Name == "BaseForm")
{
t = k;
obj = Activator.CreateInstance(k, paramArgs);
LRComponent.UIControls.Splasher.Close();
break;
}
}
catch (Exception ex)
{
WriteLog(task_no, "DoMethod_1", paramArgs[2] + " 錯誤->" + ex.Message, "Error");
}
}
調試時,查看obj對象的
通過
ConfigurationManager.AppSettings[“MailHTTPServers”].ToString()
獲取的值為null
大概的原因可能是 Assembly.LoadFrom(ExeDllName); 改變的AppDomain.CurrentDomain.BaseDirectory的路徑導致無法讀取配置文件
解決方案:
exe/dll的程式里指定加載的配置文件
string configFile = this.GetType().Assembly.Location;// exe的文件路徑
Configuration app = ConfigurationManager.OpenExeConfiguration(configFile);
string MailHTTPServers = app.AppSettings.Settings["MailHTTPServers"].Value;