動態載入組件、定位類別和呼叫方法提出了獨特的挑戰。 本文詳細介紹了完成此任務的安全有效的方法。
直接載入 DLL 並存取其類別的常見方法通常會導致轉換錯誤。 卓越的解決方案利用了 AppDomains 的強大功能。
不要直接載入組件,而是將其封裝在自己的 AppDomain 中。這提供了增強的安全性和控制。
改進後的程式碼範例:
<code class="language-csharp">var domain = AppDomain.CreateDomain("NewDomainName"); var t = typeof(TypeIWantToLoad); var runnable = domain.CreateInstanceFromAndUnwrap(@"C:\myDll.dll", t.Name) as IRunnable; if (runnable == null) throw new Exception("broke"); runnable.Run();</code>
這是一個細分:
使用 AppDomains 提供:
對於需要對動態載入和卸載進行更多控制的高級方案,託管加載項框架(System.AddIn 命名空間)提供了一個強大且強大的解決方案來管理加載項和擴充功能。
以上是如何從動態載入的程式集中安全地載入、定位和執行類別方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!