IsInstanceOfType或它在新的.net类型/类型信息API中的等效在哪里?

本文关键字:类型 API 在哪里 信息 net IsInstanceOfType | 更新日期: 2023-09-27 18:08:19

我已经阅读了进化反射API博客文章,当我在PCL中包含一个"旧"API时,我已经转换了我使用的大部分代码,但我无法找到IsInstanceOfType或等同于TypeTypeInfo。它是非常常用的,所以我怀疑它是完全在新的api下被删除的,所以我打赌这个功能刚刚被重命名或与其他功能折叠在一起,我只是没有看到它。

IsInstanceOfType或它在新的.net类型/类型信息API中的等效在哪里?

使用这个扩展方法:

public static bool IsInstanceOfType(this Type type, object obj){
        return obj != null && type.GetTypeInfo().IsAssignableFrom(obj.GetType().GetTypeInfo());
}

代替

Type foo;
BarType bar;
if(foo.IsInstanceOfType(bar)) { ... }

最后使用

Type foo;
BarType bar;
if(bar.GetType() == foo || bar.GetType().GetTypeInfo().IsSubclassOf(foo)) { ... }

似乎在大多数情况下都是非常相似的