我已经搜索了一段时间,仍然无法找到我的问题的答案,而是找到了使用多个Generic Type参数制作通用方法的答案。
所以,这是我的问题。我有一个接口IMyInterface<T1, T2>
,我想将其创建为Type。目前我可以像这样创建IMyInterface<T>
的类型:
Type type = typeof(IMyInterface<>).MakeGenericType(genericTypeForMyInterface)
非常感谢任何协助。
谢谢:)
答案 0 :(得分:8)
MakeGenericType将params Type[]作为参数,用于构造泛型类型。这意味着您可以传递任意数量的参数。
所以你可以简单地做
Type type = typeof(IMyInterface<,>).MakeGenericType(type1, type2);
请注意,对于具有多个泛型类型参数的类型,角括号之间需要逗号(,)。 (n)类型参数需要n-1个逗号。即一个逗号用于两个类型参数,两个逗号用于三个类型参数,依此类推。