2012-03-27 5 views
2

Ich habe wenig Frage. Ich fand dies im Internet:Wie lade ich Namespace Systemklassen?

Gibt es einen Weg, wie man das Gleiche mit Namespaces tun? Oder gibt es eine andere Möglichkeit, alle Klassen mit Namen und System.Type-Instanzen zu erhalten? Vor langer Zeit habe ich etwas über das Auflisten der Bibliothek gefunden. Bitte helfen Sie mir.

+2

Sie können alle Klassen von der Systemassembly mit diesem kleinen Hack bekommen: 'typeof (string) .Assembly.GetTypes()'. – dasblinkenlight

+0

Ok. Aber was soll ich tun, wenn ich es zum Beispiel von System.IO bekommen muss? – user35443

+0

mögliches Duplikat von [Suche aller Namespaces in einer Baugruppe mit Reflection (DotNET)] (http://stackoverflow.com/questions/1549198/finding-all-namespaces-in-an-assembly-using-reflection-dotnet) – Bernard

Antwort

2

Sie können alle Klassen von der mscorlib Assembly mit diesem kleinen Hack erhalten: typeof(string).Assembly.GetTypes(). Sie können weiter filtern nach FullName oder Namespace Eigenschaft.

2

Wenn Sie alle Klassen in einem bestimmten Namensraum erhalten möchten, können Sie etwas tun:

var types = from type 
      in AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes()) 
      where type.Namespace == "System" 
      select type; 

Diese System in allen geladenen Baugruppen für jede Art im Namensraum suchen. Sie könnten natürlich auch "System" zu etwas anderem ändern, wie "System.IO".

+0

Vielen Dank. Deine Lösung scheint großartig, aber er war der Erste. – user35443