Utilisez la réflexion C# pour accéder à toutes les classes de l'espace de noms
En C#, l'obtention de toutes les classes d'un espace de noms par réflexion nécessite un examen attentif. Contrairement à Java, où les classes n'existent que dans un espace de noms spécifié, les espaces de noms C# peuvent s'étendre sur plusieurs assemblys.
Pour obtenir une liste complète des classes dans un espace de noms, procédez comme suit :
Assembly.GetExecutingAssembly().GetTypes()
. where t.IsClass && t.Namespace == nspace
pour filtrer. Le code suivant utilise efficacement cette approche :
<code class="language-csharp">string nspace = "..."; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace select t; q.ToList().ForEach(t => Console.WriteLine(t.Name));</code>
Ce code parcourt tous les types de l'assembly, en sélectionnant les classes dans l'espace de noms spécifié. Imprimez ensuite le nom de la classe sur la console. Notez que cela est limité à l’assembly en cours d’exécution. Pour accéder aux classes d’autres assemblys, vous devez modifier votre code pour inclure des références à ces assemblys.
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!