Récupération de classes dans un espace de noms en C#
En C#, l'obtention de toutes les classes dans un espace de noms spécifique nécessite une approche indirecte. Pour ce faire :
Énumérer les types d'assemblage :
Filtrer par Espace de noms :
L'extrait de code suivant le démontre processus :
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
Exemple utilisation :
Assembly executingAssembly = Assembly.GetExecutingAssembly(); Type[] typelist = GetTypesInNamespace(executingAssembly, "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
Pour les versions .NET antérieures à 2.0, où Assembly.GetExecutingAssembly() n'est pas disponible :
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); }
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!