Assembly.GetExportedTypes vs GetTypes

Что делает Assembly.GetExportedTypes()? Как это отличается от Assembly.GetTypes()

Можете ли вы объяснить с помощью примера?

Ответы

Ответ 1

GetExportedTypes() не включает защищенные/частные/внутренние типы. В соответствии с вопросом, связанным с вопросом Александра ниже, внутренние типы не включаются, даже если они будут видны для сборки через InternalsVisibleToAttribute.

GetTypes() включает все типы.

Ответ 2

GetExportedTypes() возвращает только типы, видимые вне рассматриваемой сборки. "Видимый" означает публичные типы и публичные типы, вложенные в другие общедоступные типы.

Ответ 3

Маленькое замечание о InternalsVisibleToAttribute и этом вопросе.

Даже если вызов выполняется с помощью сборки с атрибутом InternalsVisibleTo, GetExportedTypes() не вернет типы internal.

Итак, GetExportedTypes() возвращает только public типы.