我有 Linq 代码,它枚举程序集中的所有类并将它们放入对象数组中Type
,以便将其作为AdditionalTypes
参数传递给 XML 序列化器。我需要过滤该数组的内容,使其仅包含从特定基类派生的类。
如何从Type
对象中确定该类是基类的后代?
我有 Linq 代码,它枚举程序集中的所有类并将它们放入对象数组中Type
,以便将其作为AdditionalTypes
参数传递给 XML 序列化器。我需要过滤该数组的内容,使其仅包含从特定基类派生的类。
如何从Type
对象中确定该类是基类的后代?
您可能正在寻找Type.IsAssignableFrom
或Type.IsSubclassOf
。在这两种情况下,如果泛型发挥作用,您需要非常仔细地考虑,因为关系变得更加复杂。
这样的事情可能会让你到达你需要的地方
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(x => x.GetTypes())
.Where(x => typeof(MyBaseType).IsAssignableFrom(x))
.ToArray();