假设我有一个类型MyType.我想做以下事情:
看起来这样做的方法是GetInterface(),但这只允许您按特定名称进行搜索.有没有办法搜索"IList形式的所有接口"(如果可能的话,如果接口是IList的子接口,它也会有用.)
我的班级结构(简化)
interface Foo<T> { }
abstract class Bar1 : Foo<SomeClass> { }
abstract class Bar2 : Foo<SomeOtherClass> { }
class FinalClass1 : Bar1 { }
class FinalClass2 : Bar2 { }
Run Code Online (Sandbox Code Playgroud)
现在,只有类型FinalClass1和FinalClass2,我需要从Foo接口获取它们各自的T类型 - FinalClass1的SomeClass和FinalClass2的SomeOtherClass.抽象类可以实现更通用的接口,但始终只有一个Foo.
如何使用反射来实现这一目标?
无论T是什么类型,我怎样才能确保类型实现Foo?就像是
bool bIsFoo = typeof(SomeType).IsAssignableFrom(Foo<>)
以上不起作用.