Maison >développement back-end >C++ >Comment récupérer toutes les classes dans un espace de noms spécifique en C# ?

Comment récupérer toutes les classes dans un espace de noms spécifique en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 00:31:44355parcourir

How to Retrieve All Classes within a Specific Namespace in C#?

Récupération de classes dans un espace de noms en C#

En C#, l'obtention de toutes les classes dans un espace de noms spécifique nécessite une approche indirecte. Pour ce faire :

  1. Énumérer les types d'assemblage :

    • Récupérer tous les types au sein de l'assemblage examiné.
  2. Filtrer par Espace de noms :

    • Vérifiez l'espace de noms de chaque type, en ne conservant que ceux de l'espace de noms cible.

L'extrait de code suivant le démontre processus :

private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return 
      assembly.GetTypes()
              .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
              .ToArray();
}

Exemple utilisation :

Assembly executingAssembly = Assembly.GetExecutingAssembly();
Type[] typelist = GetTypesInNamespace(executingAssembly, "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

Pour les versions .NET antérieures à 2.0, où Assembly.GetExecutingAssembly() n'est pas disponible :

Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

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