Assembly.GetTypes Methode

Definition

Ruft die in dieser Assembly definierten Typen ab.

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()

Gibt zurück

Type[]

Ein Array, das alle in dieser Assembly definierten Typen enthält.

Implementiert

Ausnahmen

Die Assembly enthält einen oder mehrere Typen, die nicht geladen werden können. Das von der Types-Eigenschaft dieser Ausnahme zurückgegebene Array enthält ein Type-Objekt für jeden Typ, der geladen wurde und null für jeden Typ, der nicht geladen werden konnte, während die LoaderExceptions-Eigenschaft eine Ausnahme für jeden Typ enthält, der nicht geladen werden konnte.

Beispiele

Im folgenden Beispiel werden Parameter einer Methode für einen Typ in der angegebenen Assembly angezeigt.

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

Hinweise

Das zurückgegebene Array enthält geschachtelte Typen.

Wenn die GetTypes -Methode für eine Assembly aufgerufen wird und ein Typ in dieser Assembly von einem Typ in einer Assembly abhängig ist, die nicht geladen wurde (z. B. wenn sie von einem Typ in der zweiten Assembly abgeleitet wird), wird eine ReflectionTypeLoadException ausgelöst. Dies kann beispielsweise der Fall sein, wenn die erste Assembly mit der - oder -Methode geladen ReflectionOnlyLoad wurde und die zweite Assembly nicht geladen ReflectionOnlyLoadFrom wurde. Dies kann auch bei Assemblys geschehen, die mithilfe der Methoden und geladen Load LoadFile werden, wenn die zweite Assembly beim Aufruf der -Methode nicht gefunden werden GetTypes kann.

Hinweis

Wenn ein Typ an eine andere Assembly weitergeleitet wurde, ist er nicht im zurückgegebenen Array enthalten. Informationen zur Typweiterleitung finden Sie unter Typweiterleitung in der Common Language Runtime.

Um eine Auflistung von TypeInfo -Objekten anstelle eines Arrays von Type -Objekten abzurufen, verwenden Sie die Assembly.DefinedTypes -Eigenschaft.

Gilt für: