2015-03-05 3 views
4

Я искал какое-то время и до сих пор не смог найти ответ на свой вопрос, вместо этого я нахожу ответы на вопрос о создании универсального метода с несколькими типами общего типа параметры.Как создать тип с несколькими типичными параметрами типа

Итак, это моя проблема. У меня есть интерфейс IMyInterface<T1, T2>, и я хочу создать его как Тип. В настоящее время я могу создать тип для IMyInterface<T> как это:

Type type = typeof(IMyInterface<>).MakeGenericType(genericTypeForMyInterface) 

Любая помощь будет принята с благодарностью.

Спасибо :)

+3

'Тип type = typeof (IMyInterface <>). MakeGenericType (type1, type2);'? –

ответ

5

MakeGenericType принимает params Type[] как аргументы, которые будут использоваться для построения универсального типа. Это означает, что вы можете передать любое количество аргументов.

Таким образом, вы могли бы просто сделать

Type type = typeof(IMyInterface<,>).MakeGenericType(type1, type2); 

Примечания вам нужна запятая (,) между ними угловыми скобками для типов с несколькими параметрами универсального типа. Вам нужны n-1 запятая для параметров типа (n). т.е. одна запятая для двух параметров типа, две запятые для трех параметров типа и так далее.

+0

К сожалению, я уже пробовал это, и он не работает. – Arran549

+0

Опубликовать код, который показывает, что он не работает. И что вы имеете в виду, не работает? Что происходит? Ошибка компилятора? Ошибка выполнения? или..? –

+0

не разрешает 'typeof (IMyInterface <>)', когда IMyInterface имеет два общих типа – Arran549

Смежные вопросы