Я пытаюсь выполнить запрос на интерфейсах класса через отражение, однако метод Type.GetInterfaces() также возвращает все наследуемые интерфейсы.
и т.д.
public class Test : ITest { }
public interface ITest : ITesting { }
Код
typeof(Test).GetInterfaces();
Вернет a Type[]
, содержащий как ITest
, так и ITesting
, где, поскольку я хочу только ITest
, существует ли другой метод, который позволяет указать наследование?
Спасибо, Алекс.
EDIT: Из ответов ниже я собрал это,
Type t;
t.GetInterfaces().Where(i => !t.GetInterfaces().Any(i2 => i2.GetInterfaces().Contains(i)));
Выше, похоже, работает, поправьте меня в комментариях, если он не