搜索哪些类实现哪些接口

时间:2014-01-02 19:50:03

标签: c# inheritance interface

我已经看到信息以编程方式搜索程序集中的所有类型,以确定哪些类实现哪些接口或从哪些基类继承。但是当你浏览msdn(例如Stream类)时,它们会为你提供一个很好的继承层次结构图,你可以点击查看其他类从它继承的内容。

但是接口似乎没有相同的功能。

这是一个普遍的问题。我可以很容易地找到从特定父类继承的所有类...但是有一些方法可以使用接口吗?除了编写程序来搜索所有大会外?我正在寻找一种方法来搜索所有实现特定接口的类......

4 个答案:

答案 0 :(得分:0)

How do you find all implementations of an interface?

要解决您的问题,您可以

 IEnumerables.ToList()

答案 1 :(得分:0)

代码:

IEnumerables.ToList()

Google:

 ILIST C#  

您将获得包含以下信息的链接:

[SerializableAttribute]  
[ComVisibleAttribute(true)]
public class ArrayList : IList, ICollection, 
    IEnumerable, ICloneable

您可以看到IList,页面底部也有指向其他列表的链接。

答案 2 :(得分:0)

Visual Studio中的CTRL + ALT + J将打开对象浏览器。

搜索您的类型,例如“IEnumerable”。

展开类型。展开“派生类型”。

这可能无法为您提供一切,但这是一个可以开始的地方。

(至少VS 2012 PREMIUM)

答案 3 :(得分:0)

这样的事情:

  public static class TypeExtension
    {
        public static IEnumerable<Type> GetInterfaces(this Type type)
        {
            foreach (var intf in type.GetInterfaces())
            {
                yield return intf;

                foreach (var x in intf.GetInterfaces())
                    yield return x;
            }
        }
    }