熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Dotnet實現動態加載和卸載dll

2022-06-13   來源: .NET編程 

  案例在Dotnet中使用反射動態加載dll卻發現沒有提供unload()方法?

  思路

  創建appdomain在其上加載dll然後對可以appdomainunload(secmon)從而間接unload已加載的dll

  google下可以找到很多代碼 但我發現在windows form 上可以很輕易的完成的功能但到aspnet中就老是報錯

  錯誤信息~ \Microsoft Visual Studio \Common\IDE\這個目錄沒有要卸載的dll問題它為什麼要跑到這個目錄去找而不去我給它指定的目錄找呢?我使用                 

                    AppDomainSetup setup = new AppDomainSetup();
                    setupApplicationName = check;
                    setupApplicationBase = path; //設置程序集加載的目錄

  為什麼會這樣我也一直沒弄懂?
 
  思路

  使用fileinfo 得到該dll 的二進制代碼由於沒加載該dll所以沒不會出現無法unload的情況

             byte[] assemblyInfo = FileReadAllBytes(dllpath);   
             Assembly asm = AssemblyLoad(assemblyInfo);
             object obj = asmCreateInstance(namespaceclassName true);

  有更多的方法歡迎指點!


From:http://tw.wingwit.com/Article/program/net/201311/14890.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.