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(); }
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");
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!