2016-07-18 55 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是。