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

Comment puis-je rechercher efficacement toutes les classes dans un espace de noms spécifique en C# ?

DDD
Libérer: 2024-12-31 19:15:22
original
693 Les gens l'ont consulté

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

Recherche de classes dans un espace de noms

Lorsque vous travaillez avec du code en C#, vous pouvez rencontrer le besoin d'accéder à toutes les classes dans un espace de noms spécifique. Cela peut être fait via un processus en deux étapes : identifier l'assembly contenant les types, puis filtrer les types en fonction de leur espace de noms.

Pour commencer, utilisez Assembly.GetTypes() pour obtenir un tableau de tous les types. dans les assemblages chargés. Ensuite, utilisez la méthode d'extension Where avec le paramètre StringComparison.Ordinal défini pour filtrer ces types en fonction de leur espace de noms.

Voici un exemple d'implémentation :

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 les versions .NET antérieures à 2.0. , où Assembly.GetExecutingAssembly() n'existe pas, utilisez la solution de contournement suivante pour obtenir le assembly :

Assembly myAssembly = typeof(namespace.className).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "namespace");
Copier après la connexion

En suivant ces étapes, vous pouvez récupérer efficacement toutes les classes dans n'importe quel espace de noms spécifié, vous permettant de traiter ou de manipuler davantage ces types selon vos besoins.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal