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:
Baugruppentypen aufzählen:
Filtern nach Namespace:
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!