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();
public virtual Type[] GetTypes ();
abstract member GetTypes : unit -> Type[]
override this.GetTypes : unit -> Type[]
Public Overridable Function GetTypes () As Type()
Návraty
Pole, které obsahuje všechny typy, které jsou definovány v tomto sestavení.
Implementuje
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, který byl 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 na 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.
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
Poznámky
Vrácené pole zahrnuje vnořené a neveřejné typy. Pokud chcete načíst pouze veřejné typy, použijte metodu GetExportedTypes .
GetTypes Pokud je metoda volána v 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 první sestavení bylo načteno pomocí ReflectionOnlyLoad metod nebo ReflectionOnlyLoadFrom a druhé sestavení nebylo načteno. Může k tomu dojít také u sestavení načtených pomocí Load metod a LoadFile , pokud druhé sestavení nelze najít při GetTypes zavolání metody.
Poznámka
Pokud byl typ předán jinému sestavení, není zahrnut do vráceného pole. Informace o předávání typů najdete v tématu Předávání typů v modulu Common Language Runtime.
Pokud chcete načíst kolekci TypeInfo objektů místo pole Type objektů, použijte Assembly.DefinedTypes vlastnost .