Was macht Assembly.GetExportedTypes()? Wie unterscheidet es sich von Assembly.GetTypes()Assembly.GetExportedTypes vs GetTypes
Können Sie das mit Beispiel erklären?
Was macht Assembly.GetExportedTypes()? Wie unterscheidet es sich von Assembly.GetTypes()Assembly.GetExportedTypes vs GetTypes
Können Sie das mit Beispiel erklären?
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.
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.
Also meinst du alle öffentlichen Typ werden zurückgegeben, wenn GetExportedTypes() verwendet wird? Was macht GetTypes() dann? – Viks
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.
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 * /; }} ' –