Assembly.GetTypes Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri a szerelvényben definiált összes típust.
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()
Válaszok
Az ebben a szerelvényben definiált összes típust tartalmazó tömb.
Megvalósítás
- Attribútumok
Kivételek
A szerelvény egy vagy több olyan típust tartalmaz, amely nem tölthető be. A kivétel tulajdonsága által Types visszaadott tömb minden betöltött típushoz és Type minden olyan típushoz tartalmaz null objektumot, amely nem tölthető be, míg a LoaderExceptions tulajdonság kivételt tartalmaz minden olyan típushoz, amely nem tölthető be.
Példák
Az alábbi példa egy metódus paramétereit jeleníti meg a megadott szerelvény egy típusán.
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
Megjegyzések
A visszaadott tömb beágyazott és nem nyilvános típusokat tartalmaz. Ha csak nyilvános típusokat szeretne lekérni, használja a metódust GetExportedTypes .
Ha a GetTypes metódus egy szerelvényen van meghívva, és az adott szerelvény egy típusa egy olyan szerelvény típusától függ, amely nincs betöltve (például ha a második szerelvény egyik típusából származik), akkor a rendszer adódik ReflectionTypeLoadException . Ez például akkor fordulhat elő, ha az első szerelvény be lett töltve a ReflectionOnlyLoad metódusokkal, ReflectionOnlyLoadFrom és a második szerelvény nincs betöltve. Ez akkor is előfordulhat, ha a rendszer a metódus meghívásakor Load betölti a szerelvényeket és LoadFile a GetTypes metódusokat, ha a második szerelvény nem található.
Note
Ha egy típus egy másik szerelvényre lett továbbítva, az nem szerepel a visszaadott tömbben. A típustovábbítással kapcsolatos információkért lásd : Típustovábbítás a Common Language Runtime-ban.
Ha objektumtömb helyett objektumgyűjteményt TypeInfo szeretne lekérni, használja a tulajdonságotType.Assembly.DefinedTypes