2

循环通过程序集的最佳方法是什么,并且对于程序集中的每个类都列出它的“超类”?

4

3 回答 3

3
foreach(Type type in assembly.GetTypes()) {
  var isChild = type.IsSubclassOf(typeof(parentClass))
}

来自MSDN的参考。

于 2009-07-09T13:11:52.053 回答
2
Assembly assembly = typeof(DataSet).Assembly; // etc
foreach (Type type in assembly.GetTypes())
{
    if (type.BaseType == null)
    {
        Console.WriteLine(type.Name);
    }
    else
    {
        Console.WriteLine(type.Name + " : " + type.BaseType.Name);
    }
}

请注意,泛型和嵌套类型具有时髦的名称,您可能想使用任何名称FullName来包含命名空间。

于 2009-07-09T13:08:32.270 回答
1

Assembly.GetTypesType.BaseType

Assembly a;
foreach(var type in a.GetTypes()) {
    Console.WriteLine(
        String.Format("{0} : {1}", 
            type.Name, 
            type.BaseType == null ? String.Empty : type.BaseType.Name
        );
}
于 2009-07-09T13:09:05.407 回答