Maison >développement back-end >C++ >Comment puis-je répertorier par programme toutes les classes dans un assembly C# ?

Comment puis-je répertorier par programme toutes les classes dans un assembly C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 14:38:11653parcourir

How Can I Programmatically List All Classes in a C# Assembly?

Énumération des classes au sein d'un assembly

Pour obtenir par programme une liste de classes définies dans un assembly, on peut utiliser les capacités de C# pour la réflexion sur l'assembly. Cela permet l'introspection et l'examen des métadonnées d'un assembly et de ses membres, y compris les classes.

Solution utilisant Assembly.GetTypes

La méthode GetTypes de l'assembly fournit une approche simple pour récupérer une collection d’objets Type représentant tous les types définis dans un assembly. Par exemple, pour énumérer les classes dans un assembly spécifique :

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    if (type.IsClass) // Filter for classes
    {
        Console.WriteLine(type.FullName);
    }
}

Ce code parcourra les classes définies dans l'assembly mscorlib (qui contient les classes de fonctionnalités de base) et imprimera leurs noms complets.

Autres considérations

Le code ci-dessus peut être étendu pour gérer d'autres types que les classes. Par exemple, pour lister tous les types (interfaces, énumérations, etc.) :

foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine($"{type.FullName} ({type.Namespace})");
}

La réflexion permet une introspection approfondie des assemblys et de leurs membres, facilitant diverses tâches telles que l'instanciation d'objets, la validation de type et la génération de code .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn