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

Comment puis-je récupérer toutes les classes d'un espace de noms spécifique en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-29 10:33:101016parcourir

How Can I Retrieve All Classes from a Specific Namespace in C#?

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

Pour obtenir toutes les classes dans un espace de noms spécifique en C#, utilisez la technique suivante :

Obtenez tous les types dans l'assembly cible à l'aide de Assembly.GetTypes().

Filtrez les types obtenus en fonction de leur espace de noms. Utilisez Where avec String.Equals pour faire correspondre l'espace de noms de chaque type à l'espace de noms souhaité.

Convertissez la collection de types résultante en un tableau à l'aide de ToArray().

Exemple :

using System.Reflection;

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

Pour utiliser cette méthode, invoquez-la avec l'assembly cible et l'espace de noms :

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");

Pour les versions antérieures à .Net 2.0 :

Assembly myAssembly = typeof(Namespace.someClass).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "Namespace");

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