Assembly.GetTypes Metoda

Definicja

Pobiera wszystkie typy zdefiniowane w tym zestawie.

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

Zwraca

Type[]

Tablica zawierająca wszystkie typy zdefiniowane w tym zestawie.

Implementuje

Wyjątki

Zestaw zawiera co najmniej jeden typ, którego nie można załadować. Tablica zwrócona przez Types właściwość tego wyjątku zawiera Type obiekt dla każdego typu, który został załadowany i null dla każdego typu, którego nie można załadować, podczas gdy LoaderExceptions właściwość zawiera wyjątek dla każdego typu, którego nie można załadować.

Przykłady

W poniższym przykładzie przedstawiono parametry jednej metody dla typu w określonym zestawie.

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

Uwagi

Zwracana tablica zawiera typy zagnieżdżone i inne niż publiczne. Aby pobrać tylko typy publiczne, użyj GetExportedTypes metody .

GetTypes Jeśli metoda jest wywoływana na zestawie i typ w tym zestawie jest zależny od typu w zestawie, który nie został załadowany (na przykład jeśli pochodzi z typu w drugim zestawie), ReflectionTypeLoadException jest zwracany. Na przykład może się to zdarzyć, jeśli pierwszy zestaw został załadowany z metodami ReflectionOnlyLoad lub ReflectionOnlyLoadFrom , a drugi zestaw nie został załadowany. Może się to również zdarzyć w przypadku zestawów załadowanych przy użyciu Load metod i LoadFile , jeśli drugi zestaw nie może być zlokalizowany, gdy metoda jest wywoływana GetTypes .

Note

Jeśli typ został przekazany do innego zestawu, nie jest uwzględniony w zwracanej tablicy. Aby uzyskać informacje na temat przekazywania typów, zobacz Przekazywanie typów w środowisku uruchomieniowym języka wspólnego.

Aby pobrać kolekcję TypeInfo obiektów zamiast tablicy Type obiektów, użyj Assembly.DefinedTypes właściwości .

Dotyczy