動態載入 .NET 組件、尋找特定類別並執行其方法可能很複雜。本指南為這項挑戰提供了強大的解決方案。
挑戰:
開發人員經常面臨從 .NET 程式集中動態建置、載入和實例化類別以運行特定方法(例如 Run()
)的問題。 直接轉換或使用反射可能會導致程序集間類型解析和安全性問題。
解:利用 AppDomains
最有效的方法是使用AppDomain
。這提供了至關重要的優勢:
使用 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("Assembly loading failed."); runnable.Run();</code>
卸載組件與進階選項:
AppDomain
方法簡化了程序集卸載。 對於更複雜的動態組件管理,請考慮託管加載項框架(System.AddIn
命名空間)。 Microsoft 關於加載項和可擴充性的文件提供了有關其高級功能的詳細指導。
以上是如何從動態載入的 .NET 程式集中安全地載入、實例化和運行方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!