Assembly.GetTypes Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft alle typen ab, die in dieser Assembly definiert sind.
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()
Gibt zurück
Ein Array, das alle Typen enthält, die in dieser Assembly definiert sind.
Implementiert
- Attribute
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.
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 und nicht öffentliche Typen. Verwenden Sie die GetExportedTypes Methode, um nur öffentliche Typen abzurufen.
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 ein ReflectionTypeLoadException Fehler ausgelöst. Dies kann beispielsweise passieren, wenn die erste Assembly mit den ReflectionOnlyLoad Methoden geladen ReflectionOnlyLoadFrom wurde und die zweite Assembly nicht geladen wurde. Dies kann auch mit Assemblys geschehen, die mit den Load Und-Methoden LoadFile geladen wurden, wenn die zweite Assembly nicht gefunden werden kann, wenn die GetTypes Methode aufgerufen wird.
Hinweis
Wenn ein Typ an eine andere Assembly weitergeleitet wurde, ist er nicht im zurückgegebenen Array enthalten. Informationen zur Typweiterleitung finden Sie unter "Type Forwarding" in der Common Language Runtime.
Verwenden Sie die Assembly.DefinedTypes Eigenschaft, um eine Auflistung von TypeInfo Objekten anstelle eines Arrays von Type Objekten abzurufen.