Assembly.GetTypes Metode

Definisi

Mendapatkan semua jenis yang ditentukan dalam rakitan ini.

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

Mengembalikan

Type[]

Array yang berisi semua jenis yang ditentukan dalam rakitan ini.

Penerapan

Pengecualian

Rakitan berisi satu atau beberapa tipe yang tidak dapat dimuat. Array yang dikembalikan oleh Types properti pengecualian ini berisi Type objek untuk setiap jenis yang dimuat dan null untuk setiap jenis yang tidak dapat dimuat, sementara LoaderExceptions properti berisi pengecualian untuk setiap jenis yang tidak dapat dimuat.

Contoh

Contoh berikut menampilkan parameter dari satu metode pada jenis dalam rakitan yang ditentukan.

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

Keterangan

Array yang dikembalikan mencakup jenis berlapis dan non-publik. Untuk mengambil hanya jenis publik, gunakan GetExportedTypes metode .

GetTypes Jika metode dipanggil pada rakitan dan jenis dalam rakitan tersebut tergantung pada jenis dalam rakitan yang belum dimuat (misalnya, jika berasal dari jenis di rakitan kedua), ReflectionTypeLoadException akan dilemparkan. Misalnya, ini dapat terjadi jika perakitan pertama dimuat dengan ReflectionOnlyLoad metode atau ReflectionOnlyLoadFrom , dan perakitan kedua tidak dimuat. Ini juga dapat terjadi dengan rakitan yang dimuat menggunakan Load metode dan LoadFile jika rakitan kedua tidak dapat ditemukan ketika GetTypes metode dipanggil.

Catatan

Jika jenis telah diteruskan ke assembly lain, jenis tersebut tidak disertakan dalam array yang dikembalikan. Untuk informasi tentang penerusan jenis, lihat Penerusan Jenis di Common Language Runtime.

Untuk mengambil kumpulan TypeInfo objek alih-alih array Type objek, gunakan Assembly.DefinedTypes properti .

Berlaku untuk