我的目的是找出一个类是否直接实现了一个接口。在下面的示例中,B类实现接口IB,接口IB实现IA。
如何找出继承层次结构?当我们在对象浏览器中查看类型时,它会显示详细的层次结构。我怎样才能取得类似的结果?
interface IA
{
string Member1 { get;set; }
}
interface IB : IA
{
string Member2 { get; set; }
}
class B : IB
{
public string Member1 { get; set; }
public string Member2 { get; set; }
}
反射器屏幕截图
alt text http://img571.imageshack.us/img571/7485/49211426.png
在从反射器截取的屏幕截图中,它也显示了接口的层次结构。
如何找到Type的接口层次结构。
答案 0 :(得分:3)
构建了Reflection和.NET内核,使接口可以快速使用。因此,Type.GetInterfaces返回该类型可以响应的所有接口,“展平”流程中的接口层次结构。
如果你想要对这些接口的祖先进行划分,你还需要在每个接口上调用GetInterfaces。没有捷径,因为接口的层次结构对CLR运行时没什么价值。