Heim > Backend-Entwicklung > C++ > Wie kann ich alle Klassen innerhalb eines bestimmten Namespace in C# abrufen?

Wie kann ich alle Klassen innerhalb eines bestimmten Namespace in C# abrufen?

Linda Hamilton
Freigeben: 2024-12-31 18:02:15
Original
735 Leute haben es durchsucht

How Can I Retrieve All Classes Within a Specific Namespace in C#?

Abrufen aller Klassen innerhalb eines Namespace in C

Das Abrufen aller Klassen innerhalb eines bestimmten Namespace ist in verschiedenen Szenarien unerlässlich. In C# gibt es umfassende Ansätze, um diese Aufgabe zu erfüllen.

Um diesem Bedarf gerecht zu werden, untersuchen wir einen Rückwärtsansatz. Indem wir zunächst alle Typen in einer Assembly auflisten und dann den Namespace jedes Typs untersuchen, können wir die gewünschten Klassen effektiv herausfiltern.

Der folgende Codeausschnitt veranschaulicht diese Technik:

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

An Um die Verwendung zu veranschaulichen, betrachten Sie das folgende Beispiel:

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

In Umgebungen vor .Net 2.0, wo „Assembly.GetExecutingAssembly()“ ist nicht verfügbar. Sie benötigen eine Problemumgehung, um die Assembly wie folgt abzurufen:

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 Methoden können Sie alle Klassen innerhalb eines gewünschten Namespace in C# effektiv auflisten.

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

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage