Для конкретного интерфейса ITarget<T>
и определенного типа myType
, вот как вы бы определили T
, если myType
реализует ITarget<T>
. (Этот фрагмент кода взят из ответа на на предыдущий вопрос .)
foreach (var i in myType.GetInterfaces ())
if (i.IsGenericType
&& i.GetGenericTypeDefinition() == typeof(ITarget<>))
return i.GetGenericArguments ()[0] ;
Однако, это проверяет только одиночный тип myType
. Как мне создать словарь из всех параметров такого типа, где ключом является T
, а значением является myType
? Я думаю, это будет выглядеть примерно так:
var searchTarget = typeof(ITarget<>);
var dict = Assembly.GetExecutingAssembly().[???]
.Where(t => t.IsGenericType
&& t.GetGenericTypeDefinition() == searchTarget)
.[???];
Что происходит в пробелах?