Verwenden Sie C#-Reflexion, um auf alle Klassen im Namespace zuzugreifen
In C# erfordert das Erhalten aller Klassen in einem Namespace durch Reflektion sorgfältige Überlegungen. Im Gegensatz zu Java, wo Klassen nur innerhalb eines bestimmten Namespace existieren, können C#-Namespaces mehrere Assemblys umfassen.
Um eine vollständige Liste der Klassen in einem Namespace zu erhalten, führen Sie die folgenden Schritte aus:
Assembly.GetExecutingAssembly().GetTypes()
erreicht werden. where t.IsClass && t.Namespace == nspace
. Der folgende Code nutzt diesen Ansatz effektiv:
<code class="language-csharp">string nspace = "..."; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace select t; q.ToList().ForEach(t => Console.WriteLine(t.Name));</code>
Dieser Code durchläuft alle Typen in der Assembly und wählt Klassen im angegebenen Namespace aus. Geben Sie dann den Klassennamen auf der Konsole aus. Beachten Sie, dass dies auf die aktuell ausgeführte Assembly beschränkt ist. Um auf Klassen in anderen Assemblys zuzugreifen, müssen Sie Ihren Code so ändern, dass er Verweise auf diese Assemblys enthält.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection in C# auf alle Klassen innerhalb eines Namespace zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!