Ich muss programmgesteuert einen List
aller Klassen in einem bestimmten Namespace abrufen. Wie kann ich dies (Reflexion?) In C# erreichen?Get Liste der Klassen in Namespace in C#
Antwort
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "your.name.space")
.ToList();
Es gibt immer die "Einzeiler". ;-) –
Yeah, du musst einen One-Liner lieben :-) –
Das setzt voraus, dass der ganze Namespace in der aktuellen Assembly ist, eine Teillösung bestenfalls. – War
Ohne LINQ:
Versuchen:
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
List<Type> myTypes = new List<Type>();
foreach (Type t in types)
{
if (t.Namespace=="My.Fancy.Namespace")
myTypes.Add(t);
}
Assembly.GetExecutingAssembly(). GetTypes(). ToList() gibt Ihnen die gewünschte Liste. – Gregory
Ja Greg, technisch gesehen, das eine LINQ-Erweiterung-Methode verwendet und mein Beispiel sollte dies zeigen ohne .NET 3.5 –
clean nicht linq Beispiel obwohl OP sagt nicht, dass die Assembly bereits geladen wurde, so dass der Code möglicherweise zurück ein leerer Satz, obwohl die Liste lang sein sollte und ein Namensraum in mehr Assemblies sein könnte. –
Werfen Sie einen Blick auf diese How to get all classes within namespace? die bereitgestellte Antwort eine Reihe von Typ zurückgibt [] Sie diese leicht
zurückzukehren Liste ändern kann ich Denken Sie nur an das Durchschleifen von Typen in einer Baugruppe, um die im richtigen Namensraum zu finden.
public List<Type> GetList()
{
List<Type> types = new List<Type>();
var assembly = Assembly.GetExecutingAssembly();
foreach (var type in assembly .GetTypes())
{
if (type.Namespace == "Namespace")
{
types.Add(type);
}
}
return types;
}
- 1. Get Liste der erweiterten Klassen in Typoskript
- 2. Import verschachtelte Klassen in Namespace - C++
- 3. XSD-Namespace in C# -Namespace
- 4. C# Liste der verschiedenen Klassen
- 5. Mit @ html.label in der Liste eine der Klassen
- 6. Join auf Liste der Liste in C#
- 7. C#: Liste aller Klassen in Assembly
- 8. Get Index der Liste in der Liste ist in Lisp
- 9. C# - Get Liste der offenen Aufgaben
- 10. Klassen in einem Namespace in einer T4-Vorlage lesen
- 11. Parsing Datei-Liste der Namen in C# Get
- 12. Namespace Clashing in C++
- 13. Typ-/Namespace-Aliaskonventionen in C#
- 14. Namespace eine Sammlung von Klassen in node.js
- 15. SimpleRepository-Klassen und -Namespace fehlen
- 16. Get-Funktion des ‚Namespace-Pfad‘
- 17. Methoden in Namespace C#
- 18. Liste der Klassen in einer Baugruppe
- 19. Get-Namespace in einer statischen Funktion
- 20. Get-Basis-Klassen-Typ in Python
- 21. Get Child-Klassen aus der Basisklasse
- 22. unvollständigen Typ in verschachtelten name-Bezeichner in der Liste, Namespace
- 23. Get Schnittmenge der Liste
- 24. Instanz in Liste von zwei Klassen
- 25. Get Liste der unterstützten Währungen in iOS
- 26. Get angegebene Zeichenfolge in der Liste
- 27. Get Liste der Modelle in CakePHP 2
- 28. Welchen Namespace sind meine Klassen, wenn ich keinen Namespace einstelle?
- 29. Get Kind-Klasse-Namespace von übergeordneten Klasse in PHP
- 30. Deserialize json in C# Klassen
Wie ärgerlich, wenn eine Frage als Duplikat markiert wird und das Original nicht referenziert wird. – War