Допустим следующие определения типов:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
Как узнать, реализует ли тип Foo универсальный интерфейс IBar<T>, если доступен только искаженный тип?
Foo
IBar<T>
Не должно быть ничего плохого в следующем:
bool implementsGeneric = (anObject.Implements("IBar`1") != null);
Для дополнительного кредита вы можете перехватить AmbiguousMatchException, если хотите предоставить конкретный параметр универсального типа в запросе IBar.