2008-10-07 114 views
2

我試圖在運行時創建一個類的實例。我試圖創建的類都從基類ConfigMgrObj繼承,並且被命名爲ConfigMgr_xxxxxxConfigMgr_Collection。他們都採取了一個特殊的對象,我打電話給oController和一個字符串作爲參數。從類名創建實例

這是我用來做的一行,其中ClassToGet是一個包含類的名字的字符串,例如ConfigMgr_Collection

object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet }); 

這引發了TypeLoadException異常。這是怎麼回事?

+0

你可以擴展你的問題,是包含類型加載的程序集? – 2008-10-07 03:43:27

回答

6

您嘗試實例化的類型實際上是在同一個程序集中聲明的嗎?傳遞null作爲第一個參數告訴Activator這些類型存在於當前程序集中。

+0

該死的,就是這樣。我忘了我在GUI中這樣做,我的所有東西都在同一個命名空間中,但是不同的程序集。有一個可以接受的答案來減輕我的愚蠢。 – Merus 2008-10-07 03:55:06

0

看起來它沒有在當前程序集中找到名爲"StackOverflowNamespace."+ClassToGet的類。