Как получить определенные универсальные типы из сборки, используя linq - PullRequest
1 голос
/ 18 сентября 2010

Я пытаюсь найти типы в сборке, которые имеют ISomeInterface , используя linq.

Как мне это сделать?

Вот что у меня есть:

AppDomain.CurrentDomain.GetAssemblies().SelectMany(a=>a.GetTypes().Where(t=> /* t is ISomeInterface<ofAnyType> */))

1 Ответ

2 голосов
/ 18 сентября 2010

Что-то вроде (я не за компьютером)

from asm in AppDomain.CurrentDomain.GetAssemblies()
from type in asm.GetTypes()
where (type.IsClass || type.IsStruct)
  && type.GetInterfaces().Any(
  intf => intf.IsGenericType
    && intf.GetGenericTypeDefinition() == typeof(ISomeInterface<>))
select type;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...