案例在Dotnet中使用反射動態加載dll卻發現沒有提供unload()方法?
思路
創建appdomain在其上加載dll然後對可以appdomainunload(secmon)從而間接unload已加載的dll
google下可以找到很多代碼 但我發現在windows form 上可以很輕易的完成的功能但到aspnet中就老是報錯
錯誤信息~ \Microsoft Visual Studio \Common\IDE\這個目錄沒有要卸載的dll問題它為什麼要跑到這個目錄去找而不去我給它指定的目錄找呢?我使用
AppDomainSetup setup = new AppDomainSetup();
setup
ApplicationName =
check
;
setup
ApplicationBase = path; //設置程序集加載的目錄
為什麼會這樣我也一直沒弄懂?
思路
使用fileinfo 得到該dll 的二進制代碼由於沒加載該dll所以沒不會出現無法unload的情況
byte[] assemblyInfo = File
ReadAllBytes(
dllpath
);
Assembly asm = Assembly
Load(assemblyInfo);
object obj = asm
CreateInstance(
namespace
className
true);
有更多的方法歡迎指點!
From:http://tw.wingwit.com/Article/program/net/201311/14890.html