bool isIMyInterface = typeof(IMyInterface).IsAssignableFrom(myObj.GetType());
bool isIEnumerable = typeof(IEnumerable).IsAssignableFrom(myObj.GetType());
使用Type.IsAssignableFrom 方法
参数
c 与当前的 Type 进行比较的 Type
如果 c 参数和当前的 Type 表示同一类型,或者如果当前的 Type 处在 c 的继承层次结构中,或者如果当前的 Type 是 c 所支持的接口,则为 true。如果这些条件都不成立,或者如果 c 为空引用,则为 false。