Assembly.GetTypes Assembly.GetTypes Assembly.GetTypes Assembly.GetTypes Method

Definizione

Ottiene i tipi definiti in questo assembly.Gets the types defined in this assembly.

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

Restituisce

Type[]

Matrice che contiene tutti i tipi definiti in questo assembly.An array that contains all the types that are defined in this assembly.

Implementazioni

Eccezioni

L'assembly contiene uno o più tipi che non possono essere caricati.The assembly contains one or more types that cannot be loaded. La matrice restituita dalla proprietà Types di questa eccezione contiene un oggetto Type per ogni tipo caricato e null per ogni tipo non caricato, mentre la proprietà LoaderExceptions contiene un'eccezione per ogni tipo non caricato.The array returned by the Types property of this exception contains a Type object for each type that was loaded and null for each type that could not be loaded, while the LoaderExceptions property contains an exception for each type that could not be loaded.

Esempi

Nell'esempio seguente vengono visualizzati i parametri di un metodo su un tipo nell'assembly specificato.The following example displays parameters of one method on a type in the specified assembly.

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 

Commenti

La matrice restituita include tipi annidati.The returned array includes nested types.

Se il GetTypes metodo viene chiamato su un assembly e un tipo in tale assembly dipende da un tipo in un assembly che non è stato caricato, ad esempio se deriva da un tipo nel secondo assembly, viene generata un' ReflectionTypeLoadException eccezione.If the GetTypes method is called on an assembly and a type in that assembly is dependent on a type in an assembly that has not been loaded (for example, if it derives from a type in the second assembly), a ReflectionTypeLoadException is thrown. Questo può verificarsi, ad esempio, se il primo assembly è stato caricato ReflectionOnlyLoad con ReflectionOnlyLoadFrom i metodi o e se il secondo assembly non è stato caricato.For example, this can happen if the first assembly was loaded with the ReflectionOnlyLoad or ReflectionOnlyLoadFrom methods, and the second assembly was not loaded. Può verificarsi anche con gli assembly caricati usando i Load metodi LoadFile e se il secondo assembly non può essere individuato GetTypes quando viene chiamato il metodo.It can also happen with assemblies loaded using the Load and LoadFile methods if the second assembly cannot be located when the GetTypes method is called.

Nota

Se un tipo è stato inviato a un altro assembly, non è incluso nella matrice restituita.If a type has been forwarded to another assembly, it is not included in the returned array. Per informazioni sull'invio dei tipi, vedere invio di tipi in Common Language Runtime.For information on type forwarding, see Type Forwarding in the Common Language Runtime.

Per recuperare una raccolta di TypeInfo oggetti anziché una matrice di Type oggetti, utilizzare la Assembly.DefinedTypes proprietà.To retrieve a collection of TypeInfo objects instead of an array of Type objects, use the Assembly.DefinedTypes property.

Si applica a