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

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

Linda Hamilton
Libérer: 2024-12-31 18:02:15
original
717 Les gens l'ont consulté

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

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

Obtenir toutes les classes dans un espace de noms spécifique est essentiel dans divers scénarios. En C#, il existe des approches globales pour accomplir cette tâche.

Pour répondre à ce besoin, nous explorerons une approche rétrospective. En répertoriant initialement tous les types dans un assembly, puis en examinant l'espace de noms de chaque type, nous pouvons filtrer efficacement les classes souhaitées.

L'extrait de code suivant présente cette technique :

using System.Reflection;

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

Pour illustrer son utilisation, considérons l'exemple suivant :

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}
Copier après la connexion

Dans les environnements antérieurs à .Net 2.0, où "Assembly.GetExecutingAssembly()" n'est pas disponible, vous aurez besoin d'une solution de contournement pour récupérer l'assembly comme suit :

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);
}
Copier après la connexion

En employant ces méthodes, vous pouvez énumérer efficacement toutes les classes dans un espace de noms souhaité en C#.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal