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 に答える