代码之家  ›  专栏  ›  技术社区  ›  Alex Ilyin

获取声明接口的.NET类型

  •  2
  • Alex Ilyin  · 技术社区  · 17 年前

    让我们假设MyType类型实现接口IMyInterface。如何查找声明接口的类型?例如

    class UnitTest 
    {
      MyTypeBase : IMyInterface  { }
      MyType : MyTypeBase  { }
    
      void Test() {
        Type declaration = FindDeclaration(typeof(MyType), typeof(IMyInterface));
        Assert.AreEqual(typeof(MyTypeBase), declaration) 
      }
    
    2 回复  |  直到 17 年前
        1
  •  1
  •   Adam Hughes    17 年前

    你需要使用 GetInterface GetInterfaces 调查方法 Type .

    例如,您可以这样做:

    Type declaration = typeof(MyType).GetInterface("IMyInterface");
    Assert.IsNotNull(declaration)
    

    或者你可以打电话 获取接口 然后循环搜索结果,直到找到 IMyInterface .

    Type.GetInterface(string)

    Type.GetInterfaces()

        2
  •  0
  •   Noon Silk    17 年前

    你会走上去 Type.BaseType

    推荐文章