Получение аргументов типа универсальных интерфейсов, которые реализует класс
У меня есть общий интерфейс, скажем, IGeneric. Для заданного типа я хочу найти общие аргументы, которые класс реализует через IGeneric.
Это более понятно в этом примере:
Class MyClass : IGeneric<Employee>, IGeneric<Company>, IDontWantThis<EvilType> { ... }
Type t = typeof(MyClass);
Type[] typeArgs = GetTypeArgsOfInterfacesOf(t);
// At this point, typeArgs must be equal to { typeof(Employee), typeof(Company) }
Какова реализация GetTypeArgsOfInterfacesOf (Type t)?
Примечание. Можно предположить, что метод GetTypeArgsOfInterfacesOf написан специально для IGeneric.
Edit: Обратите внимание, что я специально спрашиваю, как отфильтровать интерфейс IGeneric от всех интерфейсов, которые реализует MyClass.
Связанные с:Выяснение, реализует ли тип универсальный интерфейс