Heim > Backend-Entwicklung > C++ > Wie erhalte ich alle Klassen aus einem Namespace in C#?

Wie erhalte ich alle Klassen aus einem Namespace in C#?

DDD
Freigeben: 2024-12-31 17:17:15
Original
613 Leute haben es durchsucht

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

So rufen Sie alle Klassen innerhalb eines Namespace in C# ab

Das Auflisten aller Klassen innerhalb eines bestimmten Namespace ist in C# durch eine Technik möglich, die untersucht alle Typen innerhalb einer Assembly und filtert sie basierend auf ihren Namespaces. Hier ist der Ansatz im Detail:

using System.Reflection;

private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return assembly.GetTypes()
                    .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
                    .ToArray();
}
Nach dem Login kopieren

Beispielverwendung:

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}
Nach dem Login kopieren

Vor .Net 2.0, wo Assembly.GetExecutingAssembly() nicht verfügbar war, gab es einen alternativen Ansatz mit typeof() erforderlich, um die Assembly zu erhalten:

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);
}
Nach dem Login kopieren

Durch die Verwendung dieser Techniken können Entwickler alle darin enthaltenen Klassen effektiv abrufen ein bestimmter Namespace, der eine dynamische Klassenaufzählung in C#-Anwendungen ermöglicht.

Das obige ist der detaillierte Inhalt vonWie erhalte ich alle Klassen aus einem Namespace in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage