[英]Creating an Instance in an AppDomain from a System.Type
我正在嘗試在AppDomain中創建一個實例。 因此,我可以為每個插件創建一個單獨的AppDomain,並在使用Unload方法關閉它們時正確處理它們。
到目前為止,我的所有插件都有一個IEnumerator,並通過它們循環執行以下代碼。
Type temp = (Type)enumerator.Current;
AppDomain ad = AppDomain.CreateDomain(temp.FullName);
object obj = ad.CreateInstance(temp.Assembly.FullName, temp.FullName);
但是它在第三行崩潰,表明它無法加載文件或程序集。
以前我用過:
object obj = Activator.CreateInstance((Type)enumerator.Current);
但是發現我無法通過調用base.dispose()來正確處理這些插件,這意味着服務調用保持打開狀態,當服務返回時代碼將繼續執行。
是否可以根據類型創建應用程序域?
好的,所以我發現了我的錯誤。 它應該顯示為:
object obj = ad.CreateInstanceFrom(temp.Assembly.Location, temp.FullName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.