Comment récupérer toutes les classes dans un espace de noms en C#
L'énumération de toutes les classes dans un espace de noms spécifié est réalisable en C# grâce à une technique qui examine tous les types au sein d’un assembly et les filtre en fonction de leurs espaces de noms. Voici l'approche en détail :
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
Exemple d'utilisation :
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
Avant .Net 2.0, où Assembly.GetExecutingAssembly() n'est pas disponible, une approche alternative impliquant typeof() est requis pour obtenir l'assembly :
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); }
En utilisant ces techniques, les développeurs peuvent récupérer efficacement toutes les classes résidant dans un espace de noms spécifique, permettant l'énumération dynamique des classes dans les applications 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!