Assembly.GetTypes Yöntem

Tanım

Bu derlemede tanımlanan tüm türleri alır.

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

Döndürülenler

Type[]

Bu derlemede tanımlanan tüm türleri içeren bir dizi.

Uygulamalar

Özel durumlar

Derleme, yüklenemeyen bir veya daha fazla tür içeriyor. Bu özel durumun özelliği tarafından Types döndürülen dizi, yüklenen her tür için ve null yüklenemeyen her tür için bir Type nesnesi içerirken, özelliği yüklenemeyen LoaderExceptions her tür için bir özel durum içerir.

Örnekler

Aşağıdaki örnek, belirtilen derlemedeki bir türdeki bir yöntemin parametrelerini görüntüler.

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

Açıklamalar

Döndürülen dizi iç içe ve genel olmayan türleri içerir. Yalnızca ortak türleri almak için yöntemini kullanın GetExportedTypes .

GetTypes Yöntem bir derlemede çağrılırsa ve bu derlemedeki bir tür yüklenmemiş bir derlemedeki türe bağımlıysa (örneğin, ikinci derlemedeki bir türden türetiliyorsa), bir ReflectionTypeLoadException oluşturulur. Örneğin, ilk derleme veya ReflectionOnlyLoadFrom yöntemleriyle ReflectionOnlyLoad yüklendiyse ve ikinci derleme yüklenmediyse bu durum oluşabilir. Yöntem çağrıldığında GetTypes ikinci derleme bulunamazsa ve LoadFile yöntemleri kullanılarak Load yüklenen derlemelerle de gerçekleşebilir.

Not

Bir tür başka bir derlemeye iletildiyse, döndürülen diziye dahil değildir. Tür iletme hakkında bilgi için bkz. Ortak Dil Çalışma Zamanı'nda Tür İletme.

Bir nesne dizisi Type yerine bir nesne koleksiyonu TypeInfo almak için özelliğini kullanınAssembly.DefinedTypes.

Şunlara uygulanır