Assembly.GetTypes Assembly.GetTypes Assembly.GetTypes Assembly.GetTypes Method

Определение

Получает типы, определенные в этой сборке.Gets the types defined in this assembly.

public:
 virtual cli::array <Type ^> ^ GetTypes();
public virtual Type[] GetTypes ();
abstract member GetTypes : unit -> Type[]
override this.GetTypes : unit -> Type[]
Public Overridable Function GetTypes () As Type()

Возвраты

Type[]

Массив, содержащий все типы, определенные в этой сборке.An array that contains all the types that are defined in this assembly.

Реализации

Исключения

Сборка содержит один или несколько типов, которые не удается загрузить.The assembly contains one or more types that cannot be loaded. Массив, возвращаемый свойством Types этого исключения, содержит объект Type для каждого типа, который был загружен, и объект null для каждого типа, который не удалось загрузить, тогда как свойство LoaderExceptions содержит исключение для каждого типа, который не удалось загрузить.The array returned by the Types property of this exception contains a Type object for each type that was loaded and null for each type that could not be loaded, while the LoaderExceptions property contains an exception for each type that could not be loaded.

Примеры

Следующий пример отображает параметры одного метода для типа в заданной сборке.The following example displays parameters of one method on a type in the specified assembly.

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.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
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 

Комментарии

Возвращаемый массив содержит вложенные типы.The returned array includes nested types.

Если GetTypes метод вызывается для сборки и тип, в том, что сборка зависит от типа в сборке, которая не была загружена (например, если он является производным от типа в сборке второй), ReflectionTypeLoadException возникает исключение.If the GetTypes method is called on an assembly and a type in that assembly is dependent on a type in an assembly that has not been loaded (for example, if it derives from a type in the second assembly), a ReflectionTypeLoadException is thrown. Например, это может произойти, если первая сборка была загружена с ReflectionOnlyLoad или ReflectionOnlyLoadFrom методов, а вторая сборка не загружена.For example, this can happen if the first assembly was loaded with the ReflectionOnlyLoad or ReflectionOnlyLoadFrom methods, and the second assembly was not loaded. Это также может произойти с сборки, загруженные с помощью Load и LoadFile методов, если вторую сборку не удается найти, когда GetTypes вызывается метод.It can also happen with assemblies loaded using the Load and LoadFile methods if the second assembly cannot be located when the GetTypes method is called.

Примечание

Если тип был перемещен в другую сборку, он не включен в возвращаемый массив.If a type has been forwarded to another assembly, it is not included in the returned array. Сведения о перенаправлении типов см. в разделе Переадресация типа в системе Common Language Runtime.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

Чтобы получить коллекцию TypeInfo объектов вместо массива Type объекты, используют Assembly.DefinedTypes свойство.To retrieve a collection of TypeInfo objects instead of an array of Type objects, use the Assembly.DefinedTypes property.

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