Maison >développement back-end >C++ >Comment obtenir toutes les classes d'un espace de noms en C# ?

Comment obtenir toutes les classes d'un espace de noms en C# ?

DDD
DDDoriginal
2024-12-31 17:17:15585parcourir

How to Get All Classes from a Namespace in C#?

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!

Déclaration:
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