如何從組件和類型名稱動態實例化類別?
Jan 19, 2025 am 09:07 AM運行時動態建立類別實例
只知道DLL名稱和類別名,無需在專案中新增組件引用,即可在執行時建立物件實例。此功能特別適用於插件系統或依賴注入等場景。
使用 Assembly.LoadFrom()
要將組件載入到記憶體中,請使用 Assembly.LoadFrom() 方法,並提供 DLL 檔案的路徑:
Assembly assembly = Assembly.LoadFrom("library.dll");
登入後複製
找 Type 物件
載入組件後,使用反射來定位特定類型:
Type type = assembly.GetType("Company.Project.Classname");
登入後複製
建立實例
最後,使用 Activator.CreateInstance() 建立該類型的物件實例:
object instanceOfMyType = Activator.CreateInstance(type);
登入後複製
處理未知 DLL 位置
如果您沒有 DLL 的絕對路徑,則可以依賴 .NET 類型解析機制:
object instanceOfMyType = Activator.CreateInstance("library.dll", "Company.Project.Classname");
登入後複製
此方法將自動搜尋各種位置,包括應用程式根目錄、system32 和 GAC,以尋找組件並解析類型。
高級訂製
如有必要,您可以透過實作自訂的 DLL 搜尋機制來增強此解決方案,以便搜尋特定目錄中的 DLL。這在您儲存預設類型解析機制未搜尋的其他組件的場景中,將提供更大的靈活性。
以上是如何從組件和類型名稱動態實例化類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)