I have a generic interface, say IGeneric. For a given type, I want to find the generic arguments which a class imlements via IGeneric.
It is more clear in this example:
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) }
What is the implementation of GetTypeArgsOfInterfacesOf(Type t)?
Note: It may be assumed that GetTypeArgsOfInterfacesOf method is written specifically for IGeneric.
Edit: Please note that I am specifically asking how to filter out IGeneric interface from all the interfaces that MyClass implements.
Related: Finding out if a type implements a generic interface