有没有更好的(性能更高或更更好的代码;)方法来查找类型的所有派生类型?目前,我正在使用类似的东西:获取二手装配中的所有类型检查所有类型的我的类型是否为“ IsAssignable”我想知道是否有更好的方法可以做到这一点?
3 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
我很确定您建议的方法将是查找所有派生类型的更简便方法。父类不存储有关其子类是什么的任何信息(如果这样做,那将是很愚蠢的),这意味着无法避免在此处搜索所有类型。
唯一的建议是使用该Type.IsSubclassOf
方法,而不是Type.IsAssignable
为了检查特定类型是否派生自其他类型。尽管如此,也许仍然有您需要使用的原因Type.IsAssignable
(例如,它可以与接口一起使用)。
青春有我
TA贡献1784条经验 获得超8个赞
假设baseType包含要检查的System.Type对象,matchType包含具有当前迭代类型(通过foreach循环或其他方法)的System.Type对象:
如果要检查Wheather MatchType是从我要使用的baseType表示的类派生的
matchType.IsSubclassOf(baseType)
而且,如果要检查Wheather MatchType实现我将使用的baseType表示的接口
matchType.GetInterface(baseType.ToString(), false) != null
当然,我会将baseType.ToString()存储为全局变量,因此不需要一直调用它。并且由于您可能在具有许多类型的上下文中需要它,因此您也可以考虑使用System.Threading.Tasks.Parallel.ForEach-Loop来遍历所有类型...
- 3 回答
- 0 关注
- 496 浏览
添加回答
举报
0/150
提交
取消