2011-04-06 76 views
0

我試圖解決這個問題:反思,仿製藥和多組件

Type.GetType("Class1'[[Class2]]")

其中Class1Class2在不同的組件。

我可以解析組件,並找到Class1類型以及該Class2類型,但我如何才能在Class1<Class2>類型?

+0

你爲什麼得到帶有字符串的類型,他們是那些程序集中的內部類? – 2011-04-07 04:08:01

回答

1

我想,這應該是這樣的:

Type.GetType("Class1`1[Class2]"); 

注:我從'到'改變了APOSTROPH並加入通用參數的個數。

如果這還不夠,嘗試指定的類,包括命名空間和裝配:

Type.GetType("Namespace1.Class1`1[[Namespace2.Class2, Assembly2]], Assembly1"); 
+0

MakeGenericType()解決方案更加優雅 – 2012-06-19 22:13:50

2

如果你能找到的類型,所有你需要的是:

Type class1Type = assembly1.GetType("Class1"); //or however you are able to get this type 
Type class2Type = assembly2.GetType("Class2"); //or however you are able to get this type 
Type genericType = class1Type.MakeGenericType(class2Type); 

genericType會像其typeof(Class1<Class2>)

+0

完美,這就是我一直在尋找的!謝謝! – Thomas 2011-04-08 17:26:58

+0

您可以將其標記爲問題的解決方案,這樣其他用戶無需詢問即可找到答案。 – 2011-04-11 04:44:59

+0

這個答案不夠好,被標記爲正確嗎? – Ric 2013-11-14 16:05:52