Явно реализованные методы интерфейса в C # являются частными в целевом классе. Вы можете использовать этот факт и создать этот метод расширения, чтобы возвращать только эти методы:
static IEnumerable<MethodInfo> GetExplicitlyImplementedMethods(this Type targetType,
Type interfaceType)
{
return targetType.GetInterfaceMap(interfaceType).TargetMethods.Where(m => m.IsPrivate);
}
Примечание: только для C # .
ОБНОВЛЕНИЕ: Но, исходя из ваших требований, кажется, что вы хотите знать только, какие методы реализуют какие методы интерфейса, не заботясь о том, является ли реализация неявной или явной. Тогда для решения, которое работает на разных языках, этого будет достаточно:
static IEnumerable<MethodInfo> GetImplementedMethods(this Type targetType,
Type interfaceType)
{
return targetType.GetInterfaceMap(interfaceType).TargetMethods;
}