2012-11-13 32 views
0

我想在C#中動態加載類。我記得在Java中我們使用了Class.forname("String"),所以在google搜索後,我發現我們可以在C#中使用Activator.CreateInstance。我無法弄清楚我的程序集名稱會在這裏。有什麼建議麼 ?程序集名稱是什麼Activator.CreateInstance

object obj = Activator.CreateInstance("MyAssembly","namespaceA.SomeClassName"); 
+0

如果對象與您正在編寫代碼的相同程序集中傳遞第一個參數爲'null',則在此情況下搜索正在執行的程序集。 –

回答

1

這只是組件的名稱。 可能與命名空間相同,但它可能不是。例如,System.Linq.Enumerable類位於System.Core程序集(位於System.Core.dll)。

如果目標程序集是一個框架,請查看文檔。

如果它是一個你的控制之下的,你應該知道程序集的名稱 - 這是項目屬性的一部分。

+1

查找類型定義組件的最簡單方法是在代碼編輯器中選擇它,然後按F12(視圖定義)。如果該類是一個框架類,則所顯示的元數據的第一行將包含程序集名稱。 – Richard

+0

謝謝你解決了這個問題 –

相關問題