Pergunta

Eu gostaria de saída. (Programaticamente - C #) uma lista de todas as classes no meu assembly

Qualquer sugestões ou código de exemplo como fazer isso? Reflexão?

Foi útil?

Solução

Use Assembly.GetTypes . Por exemplo:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}

Outras dicas

Eu apenas gostaria de acrescentar ao exemplo de Jon. Para obter uma referência para a sua própria montagem, você pode usar:

Assembly myAssembly = Assembly.GetExecutingAssembly();

System.Reflection namespace.

Se você deseja examinar um conjunto que você não tem nenhuma referência a, você pode usar qualquer um destes:

Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);

Se você pretende instanciar o seu tipo, uma vez que você o encontrou:

Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);

Veja a Assembléia documentação da classe para mais informações .

Depois de ter a referência ao objeto Assembly, você pode usar assembly.GetTypes() como Jon já demonstrada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top