2011-01-05 98 views
3

泛型類型我有一個包含一個通用類的名稱與特定類型的字符串:實例化從字符串

string s = "GenericRouteHandler<MemberHandler>"; 

如何從這個字符串實例化一個實例?我知道如何使用Type.GetType()實例化一個具體類,然後使用Activator,但我不確定去哪裏使用泛型類。

+0

可能與:http://stackoverflow.com/questions/4629/c-eval-equivalent – JYelton 2011-01-05 22:49:20

回答

2

像這樣typeof(GenericRouteHandler<>).MakeGenericType(typeof(MemberHandler));

當然,如果你沒有,你必須使用Type.GetType(string)拿到類型,而不是typeof的類型。

編輯:然後,你必須激活型Activator.CreateInstance()或調用構造器,如果知道簽名myGenericType.GetConstructor(ctorArgsTypes).Invoke(ctorParams);;它可以更快,如果緩存中的consturctors它可以更快然後Activator.CreateInstance()

msdn

+0

謝謝,那會做! – Andrey 2011-01-05 23:05:53

相關問題