Учитывая Object1 и Object2, существуют ли какие-либо методы для определения, реализуют ли они оба общий интерфейс?Нет проблем, если интерфейс известен во время компиляции (используйте typeof ... is [known interface]), но что если интерфейс не указан во время компиляции?
Конкретный вариант использования - реализация строго типизированного объекта коллекции.Я только хочу добавить Object2, если он имеет общий интерфейс как Object1.Typename не работает, так как он возвращает базовый тип объекта, и у меня может быть два отдельных объекта, каждый из которых реализует ISomeInterface, но в разных базовых классах.
Пример, который не совсем работает, можно найти здесь (поскольку оно опирается на typename, но не позволяет сравнивать интерфейсы)
В частности, расширение функции IsTypeSafe найдено здесь в CodeReview , но адаптировано так, что если объект поддерживает интерфейсобщий для всех ранее добавленных элементов, его можно добавить в список.
Специальный вопрос: есть ли способ определить, реализуют ли два объекта общий интерфейс, который не определен во время компиляции