Как определить, реализует ли тип определенный тип универсального интерфейса - PullRequest
204 голосов
/ 02 февраля 2009

Допустим следующие определения типов:

public interface IFoo<T> : IBar<T> {}
public class Foo<T> : IFoo<T> {}

Как узнать, реализует ли тип Foo универсальный интерфейс IBar<T>, если доступен только искаженный тип?

Ответы [ 11 ]

0 голосов
/ 13 июня 2011

Не должно быть ничего плохого в следующем:

bool implementsGeneric = (anObject.Implements("IBar`1") != null);

Для дополнительного кредита вы можете перехватить AmbiguousMatchException, если хотите предоставить конкретный параметр универсального типа в запросе IBar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...