How to determine if a type implements an interface with C# reflection

C# 反射提供了一种方法来确定某些给定的System.Type类型是否可以模拟某个接口?

public interface IMyInterface {}

public class MyType : IMyInterface {}

// should yield 'true'
typeof(MyType)./* ????? */MODELS_INTERFACE(IMyInterface);

我的头顶上有几个选择

  • typeof(IMyInterface).IsAssignableFrom(typeof(MyType))

  • typeof(MyType).GetInterfaces().Contains(typeof(IMyInterface))


  • 使用Type.IsAssignableFrom

    typeof(IMyInterface).IsAssignableFrom(typeof(MyType));
    

    typeof(IMyInterface).IsAssignableFrom(someclass.GetType());
    

    要么

    typeof(IMyInterface).IsAssignableFrom(typeof(MyType));
    
    链接地址: http://www.djcxy.com/p/43724.html

    上一篇: 强制转换为未明确实现的接口?

    下一篇: 如何确定一个类型是否实现了一个使用C#反射的接口