C#学习教程:从派生自基类的程序集中获取所有类型分享


从派生自基类的程序集中获取所有类型

我试图检查程序集的内容,并找到其中直接或间接派生自Windows.Forms.UserControl的所有类。

我这样做:

Assembly dll = Assembly.LoadFrom(filename); var types = dll.GetTypes().Where(x => x.BaseType == typeof(UserControl)); 

但是它给出了一个空列表,因为没有类直接扩展UserControl。 我不太了解reflection快速完成它,如果我不需要,我宁愿不写一个递归函数。

你应该使用Type.IsSubclassOf代替:

 var types = dll.GetTypes().Where(x => x.IsSubclassOf(typeof(UserControl))); 

您可以使用 :

上述就是C#学习教程:从派生自基类的程序集中获取所有类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

  var assembly = Assembly.Load(filename); var types = assembly.GetTypes().Where((type) => typeof(UserControl).IsAssignableFrom(type)); 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1032021.html

发表评论

邮箱地址不会被公开。 必填项已用*标注