Sdílet prostřednictvím


Assembly.GetTypes Metoda

Definice

Získá všechny typy definované v tomto sestavení.

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

Návraty

Type[]

Pole, které obsahuje všechny typy definované v tomto sestavení.

Implementuje

Atributy

Výjimky

Sestavení obsahuje jeden nebo více typů, které nelze načíst. Pole vrácené Types vlastností této výjimky obsahuje Type objekt pro každý typ načtený a null pro každý typ, který nelze načíst, zatímco LoaderExceptions vlastnost obsahuje výjimku pro každý typ, který nelze načíst.

Příklady

Následující příklad zobrazuje parametry jedné metody typu v zadaném sestavení.

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

Poznámky

Vrácené pole obsahuje vnořené a neveřejné typy. Pokud chcete načíst pouze veřejné typy, použijte metodu GetExportedTypes .

GetTypes Pokud je volána metoda sestavení a typ v tomto sestavení je závislý na typu v sestavení, které nebylo načteno (například pokud je odvozeno od typu v druhém sestavení), ReflectionTypeLoadException je vyvolána. K tomu může dojít například v případě, že bylo první sestavení načteno s metodami ReflectionOnlyLoad nebo ReflectionOnlyLoadFrom metodami a druhé sestavení nebylo načteno. Může také dojít u sestavení načtených pomocí Load a LoadFile metod, pokud druhé sestavení nelze nalézt při GetTypes zavolání metody.

Poznámka:

Pokud byl typ předán do jiného sestavení, není zahrnut do vráceného pole. Informace o předávání typů naleznete v tématu Předávání typů v modulu Common Language Runtime.

Chcete-li načíst kolekci TypeInfo objektů místo pole Type objektů, použijte Assembly.DefinedTypes tuto vlastnost.

Platí pro