Heim >Backend-Entwicklung >C++ >Wie erhalte ich alle Klassen aus einem Namespace in C#?
So rufen Sie alle Klassen innerhalb eines Namespace in C# ab
Das Auflisten aller Klassen innerhalb eines bestimmten Namespace ist in C# durch eine Technik möglich, die untersucht alle Typen innerhalb einer Assembly und filtert sie basierend auf ihren Namespaces. Hier ist der Ansatz im Detail:
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
Beispielverwendung:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
Vor .Net 2.0, wo Assembly.GetExecutingAssembly() nicht verfügbar war, gab es einen alternativen Ansatz mit typeof() erforderlich, um die Assembly zu erhalten:
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); }
Durch die Verwendung dieser Techniken können Entwickler alle darin enthaltenen Klassen effektiv abrufen ein bestimmter Namespace, der eine dynamische Klassenaufzählung in C#-Anwendungen ermöglicht.
Das obige ist der detaillierte Inhalt vonWie erhalte ich alle Klassen aus einem Namespace in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!