2016-07-18 76 views
4

在C#中,我怎麼可以構建從一般定義和通用參數的泛型類型一樣如何從泛型定義和泛型參數中獲取泛型?

var genericDefinition = typeof(List); 
var genericArgument = typeof(string); 
// How can I get the Type instance representing List<string> from the 2 variables above? 

在我的用例,一般的說法是動態解析。這在C#中可能嗎?提前致謝。

回答

4

有沒有這樣的事情typeof(List)。但是,typeof(List<>)工作正常,並且是開放泛型類型。然後你只需使用:

var genericDefinition = typeof(List<>); 
var genericArgument = typeof(string); 
var concreteListType = genericDefinition.MakeGenericType(new[] {genericArgument}); 

,你應該會發現concreteListType是。