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(); }
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");
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!