Gibt es eine Möglichkeit, ein Objekt aus einem bestimmten Namespace zu erhalten? Vielleicht mit der System.Reflections
? Ich möchte alle Objekte vom Typ ITestType
im Namespace Test.TestTypes
als Objekte, so dass ich eine Liste von Instanzen von TestType1, TestType2, TestType3
und so weiter haben. Kann mir jemand helfen? Ich weiß nicht, wo ich danach suchen soll.Herausnehmen aller Klassen eines bestimmten Namespace
10
A
Antwort
19
Sie können alle Typen innerhalb einer Baugruppe, finden und alle diese Typen finden, die den angegebenen Namespace übereinstimmen (dies ist wirklich einfach, mit LINQ) - aber wenn man sich durch keine bestimmte Anordnung haben, Sie müssen alle der möglichen untersuchen.
Wenn Sie jedoch nach einer Möglichkeit suchen, alle live Objekte zu finden, ist das eine andere Sache - und Sie können es nicht tun, ohne die Profiler-API zu verwenden, soweit mir bekannt ist. (Selbst dann kann es schwierig sein - ich weiß es nicht.)
Hier ist die LINQ-Abfrage aber:
public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly,
String desiredNamespace)
{
return assembly.GetTypes()
.Where(type => type.Namespace == desiredNamespace);
}