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

Wie kann ich alle Klassen aus einem bestimmten Namespace in C# abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-29 10:33:101051Durchsuche

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

Alle Klassen innerhalb eines Namespace in C# abrufen

Um alle Klassen innerhalb eines bestimmten Namespace in C# abzurufen, verwenden Sie die folgende Technik:

Erhalten Sie alle Typen innerhalb der Zielassembly mit Assembly.GetTypes().

Filtern Sie die erhaltenen Typen basierend auf ihrem Namensraum. Verwenden Sie Where mit String.Equals, um den Namespace jedes Typs dem gewünschten Namespace zuzuordnen.

Konvertieren Sie die resultierende Typsammlung mit ToArray() in ein Array.

Beispiel:

using System.Reflection;

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

Um diese Methode zu nutzen, rufen Sie sie mit der Zielassembly und dem Zielnamespace auf:

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");

Für Versionen vor .Net 2.0:

Assembly myAssembly = typeof(Namespace.someClass).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "Namespace");

Das obige ist der detaillierte Inhalt vonWie kann ich alle Klassen aus einem bestimmten Namespace in C# abrufen?. 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