Assembly.GetExportedTypes vs GetTypes
Что делает Assembly.GetExportedTypes()? Как это отличается от Assembly.GetTypes()
Можете ли вы объяснить с помощью примера?
Ответы
Ответ 1
GetExportedTypes() не включает защищенные/частные/внутренние типы. В соответствии с вопросом, связанным с вопросом Александра ниже, внутренние типы не включаются, даже если они будут видны для сборки через InternalsVisibleToAttribute.
GetTypes() включает все типы.
Ответ 2
GetExportedTypes()
возвращает только типы, видимые вне рассматриваемой сборки. "Видимый" означает публичные типы и публичные типы, вложенные в другие общедоступные типы.
Ответ 3
Маленькое замечание о InternalsVisibleToAttribute
и этом вопросе.
Даже если вызов выполняется с помощью сборки с атрибутом InternalsVisibleTo
, GetExportedTypes()
не вернет типы internal
.
Итак, GetExportedTypes()
возвращает только public
типы.