Assembly.GetTypes Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает все типы, определенные в этой сборке.
public:
virtual cli::array <Type ^> ^ GetTypes();
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
public virtual Type[] GetTypes();
public virtual Type[] GetTypes();
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")>]
abstract member GetTypes : unit -> Type[]
override this.GetTypes : unit -> Type[]
abstract member GetTypes : unit -> Type[]
override this.GetTypes : unit -> Type[]
Public Overridable Function GetTypes () As 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());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
' Type = System.String
' Position = 0
' Optional=False
For Each Param As ParameterInfo 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()))
Next
Комментарии
Возвращаемый массив включает вложенные и не общедоступные типы. Чтобы получить только общедоступные GetExportedTypes типы, используйте этот метод.
GetTypes Если метод вызывается для сборки и типа в этой сборке зависит от типа в сборке, которая не была загружена (например, если она является производным от типа во второй сборке), ReflectionTypeLoadException создается исключение. Например, это может произойти, если первая сборка была загружена с ReflectionOnlyLoad помощью методов или ReflectionOnlyLoadFrom методов, а вторая сборка не была загружена. Это также может произойти с сборками, загруженными с помощью Load методов и LoadFile методов, если вторая сборка не может находиться при вызове GetTypes метода.
Замечание
Если тип перенаправлен в другую сборку, он не включен в возвращаемый массив. Сведения о переадресации типов см. в разделе " Пересылка типов" в среде CLR.
Чтобы получить коллекцию TypeInfo объектов вместо массива Type объектов, используйте Assembly.DefinedTypes это свойство.