确定Type是否适用于后代类

时间:2013-07-03 16:47:03

标签: c# reflection

我有Linq代码,它枚举了程序集中的所有类,并将它们放入Type个对象的数组中,以便将它作为AdditionalTypes参数传递给XML Serializer。我需要过滤该数组的内容,以便它只包含从特定基类继承的类。

如何从Type对象确定该类是基类的后代?

2 个答案:

答案 0 :(得分:4)

您可能正在寻找Type.IsAssignableFromType.IsSubclassOf。在这两种情况下,你都需要仔细考虑仿制药是否起作用,因为关系变得更加复杂。

答案 1 :(得分:1)

这样的事情可能会让你到达你需要的地方

AppDomain.CurrentDomain.GetAssemblies()
                     .SelectMany(x => x.GetTypes())
                     .Where(x => typeof(MyBaseType).IsAssignableFrom(x))
                     .ToArray();