Assembly.GetTypes Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.