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

Wie rufe ich alle Klassen innerhalb eines bestimmten Namespace in C# ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-04 00:31:44356Durchsuche

How to Retrieve All Classes within a Specific Namespace in C#?

Abrufen von Klassen innerhalb eines Namespace in C#

In C# erfordert das Abrufen aller Klassen innerhalb eines bestimmten Namespace einen indirekten Ansatz. Um dies zu erreichen:

  1. Baugruppentypen aufzählen:

    • Alle Typen innerhalb der zu prüfenden Baugruppe abrufen.
  2. Filtern nach Namespace:

    • Überprüfen Sie den Namespace jedes Typs und behalten Sie nur diejenigen im Ziel-Namespace bei.

Der folgende Codeausschnitt veranschaulicht dies Prozess:

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

Beispiel Verwendung:

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

Für .NET-Versionen vor 2.0, bei denen Assembly.GetExecutingAssembly() nicht verfügbar ist:

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);
}

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

Stellungnahme:
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