我想在C#中動態加載類。我記得在Java中我們使用了Class.forname("String")
,所以在google搜索後,我發現我們可以在C#中使用Activator.CreateInstance
。我無法弄清楚我的程序集名稱會在這裏。有什麼建議麼 ?程序集名稱是什麼Activator.CreateInstance
object obj = Activator.CreateInstance("MyAssembly","namespaceA.SomeClassName");
我想在C#中動態加載類。我記得在Java中我們使用了Class.forname("String")
,所以在google搜索後,我發現我們可以在C#中使用Activator.CreateInstance
。我無法弄清楚我的程序集名稱會在這裏。有什麼建議麼 ?程序集名稱是什麼Activator.CreateInstance
object obj = Activator.CreateInstance("MyAssembly","namespaceA.SomeClassName");
這只是組件的名稱。 可能與命名空間相同,但它可能不是。例如,System.Linq.Enumerable
類位於System.Core
程序集(位於System.Core.dll
)。
如果目標程序集是一個框架,請查看文檔。
如果它是一個你的控制之下的,你應該知道程序集的名稱 - 這是項目屬性的一部分。
查找類型定義組件的最簡單方法是在代碼編輯器中選擇它,然後按F12(視圖定義)。如果該類是一個框架類,則所顯示的元數據的第一行將包含程序集名稱。 – Richard
謝謝你解決了這個問題 –
如果對象與您正在編寫代碼的相同程序集中傳遞第一個參數爲'null',則在此情況下搜索正在執行的程序集。 –