Прочитать на английском

Поделиться через


Assembly.GetTypes Метод

Определение

Возвращает все типы, определенные в этой сборке.

public virtual Type[] GetTypes ();

Возвращаемое значение

Type[]

Массив, содержащий все типы, определенные в этой сборке.

Реализации

Исключения

Сборка содержит один или несколько типов, которые не удается загрузить. Массив, возвращаемый свойством Types этого исключения, содержит объект Type для каждого типа, который был загружен, и объект null для каждого типа, который не удалось загрузить, тогда как свойство LoaderExceptions содержит исключение для каждого типа, который не удалось загрузить.

Примеры

В следующем примере отображаются параметры одного метода для типа в указанной сборке.

Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}

Комментарии

Возвращаемый массив включает вложенные и не являющиеся открытыми типы. Чтобы получить только открытые типы, используйте GetExportedTypes метод .

GetTypes Если метод вызывается для сборки и тип в этой сборке зависит от типа в сборке, которая не была загружена (например, если он является производным от типа во второй сборке), ReflectionTypeLoadException возникает исключение . Например, это может произойти, если первая сборка была загружена ReflectionOnlyLoad с помощью методов или ReflectionOnlyLoadFrom , а вторая сборка не была загружена. Это также может произойти со сборками, загруженными с помощью Load методов и LoadFile , если вторая сборка не может быть найдена при вызове GetTypes метода .

Примечание

Если тип был переадресован в другую сборку, он не включается в возвращаемый массив. Сведения о переадресации типов см. в разделе Переадресация типов в СРЕДЕ CLR.

Чтобы получить коллекцию TypeInfo объектов , а не массив объектов Type , используйте Assembly.DefinedTypes свойство .

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1