2009-02-11 2 views

Antwort

18

GetExportedTypes() enthält keine geschützten/privaten/internen Typen. Gemäß der Frage, die in Alexanders Frage unten verlinkt ist, sind interne Typen nicht eingeschlossen, selbst wenn sie für eine Assembly über InternalsVisibleToAttribute sichtbar wären.

GetTypes() enthält alle Typen.

+0

Es ist besonders verwirrend, dass verschachtelte "geschützte" Typen und verschachtelte "geschützte interne" Typen, deren Deklarationstypen öffentlich sind, nicht zurückgegeben werden. Ein Beispiel mit ['TypeConverter + SimplePropertyDescriptor'] (http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.simplepropertydescriptor.aspx):' class MyClass: System.ComponentModel.TypeConverter {static void Main() {var exportierte = typeof (SimplePropertyDescriptor); Console.WriteLine (exportierte.IsVisible)/* schreibt False * /; }} ' –

7

GetExportedTypes() gibt nur Typen zurück, die außerhalb der betreffenden Baugruppe sichtbar sind. "Sichtbar" bedeutet öffentliche Typen und öffentliche Typen, die in anderen öffentlichen Typen verschachtelt sind.

+0

Also meinst du alle öffentlichen Typ werden zurückgegeben, wenn GetExportedTypes() verwendet wird? Was macht GetTypes() dann? – Viks

3

Kleine Bemerkung über InternalsVisibleToAttribute und this question.

Auch wenn der Aufruf von einer Baugruppe mit einem InternalsVisibleTo-Attribut erfolgt, gibt GetExportedTypes() keine internal Typen zurück.

So, GetExportedTypes() gibt nur public Typen zurück.

Verwandte Themen