如何找到类型的接口继承层次结构?

时间:2010-08-05 15:45:39

标签: c# interface hierarchy

我的目的是找出一个类是否直接实现了一个接口。在下面的示例中,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的接口层次结构。

1 个答案:

答案 0 :(得分:3)

构建了Reflection和.NET内核,使接口可以快速使用。因此,Type.GetInterfaces返回该类型可以响应的所有接口,“展平”流程中的接口层次结构。

如果你想要对这些接口的祖先进行划分,你还需要在每个接口上调用GetInterfaces。没有捷径,因为接口的层次结构对CLR运行时没什么价值。