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

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

DDD
Freigeben: 2024-12-31 19:15:22
Original
686 Leute haben es durchsucht

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

Klassen innerhalb eines Namespace finden

Wenn Sie mit Code in C# arbeiten, müssen Sie möglicherweise auf alle Klassen innerhalb eines bestimmten Namespace zugreifen. Dies kann durch einen zweistufigen Prozess erfolgen: Identifizieren der Assembly, die die Typen enthält, und anschließendes Filtern der Typen basierend auf ihrem Namespace.

Zunächst verwenden Sie Assembly.GetTypes(), um ein Array aller Typen abzurufen in den geladenen Baugruppen. Anschließend verwenden Sie die Erweiterungsmethode „Where“ mit dem Parametersatz StringComparison.Ordinal, um diese Typen basierend auf ihrem Namespace zu filtern.

Hier ist eine Beispielimplementierung:

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

Für .NET-Versionen vor 2.0 , wenn Assembly.GetExecutingAssembly() nicht vorhanden ist, verwenden Sie die folgende Problemumgehung, um die zu erhalten Assembly:

Assembly myAssembly = typeof(namespace.className).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "namespace");
Nach dem Login kopieren

Indem Sie diese Schritte befolgen, können Sie alle Klassen in jedem angegebenen Namespace effizient abrufen und so diese Typen nach Bedarf weiter verarbeiten oder bearbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Klassen innerhalb eines bestimmten Namespace in C# effizient finden?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage