.NET / C # - Reflection Help - Classes em uma Assembléia
-
12-09-2019 - |
Pergunta
O que é a melhor maneira de percorrer uma montagem, e para cada classe no rol de fora o é "SuperClass"?
Solução
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);
}
}
Note que os genéricos e tipos aninhados têm nomes funk, qualquer que você pode querer usar FullName
para incluir o namespace.
Outras dicas
foreach(Type type in assembly.GetTypes()) {
var isChild = type.IsSubclassOf(typeof(parentClass))
}
Referência de MSDN .
Assembly.GetTypes
e Type.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
);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow