2009-06-02 72 views
4

我有一個抽象類Step以及許多基於XML文檔實例化的後代Step類。通過類名實例化一個.Net對象

因此我想創建基於XML文檔

步驟類型=「GenerateReport」 .... 步驟類型=「PrintReport」 在類型的特定步驟的類的實例。 ...

如何通過指定類名(最好是傳遞給構造函數的參數)來實例化一個對象?

回答

5

最簡單的方法是Activator.CreateInstance重載接受Typeparams object[]。對於Type,您可以有時使用Type.GetType(string),但是這不檢查所有程序集(只是當前程序集和某些系統程序集)。如果該名稱集限定你可能會確定 - 但如果它僅僅是合格的命名空間(即全名),那麼你可能會想使用Assembly.GetType(string) - 即

Type type = typeof(SomeKnownTypeInTheSameAssembly).GetType(fullName); 
object obj = Activator.CreateInstance(type, args); 
+0

感謝詳細的回答 - 這工作過一種享受。 – 2009-06-11 20:17:59