Assembly.GetTypes メソッド

定義

このアセンブリで定義されている型を取得します。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()

戻り値

Type[]

このアセンブリで定義されているすべての型を格納している配列。An array that contains all the types that are defined in this assembly.

実装

例外

アセンブリには、読み込むことができない 1 つ以上の型が含まれています。The assembly contains one or more types that cannot be loaded. この例外の Types プロパティによって返される配列には、読み込まれた各型の Type オブジェクト、および読み込むことができなかった各型の null が含まれています。LoaderExceptions プロパティには、読み込むことができなかった各型の例外が含まれています。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.

次の例では、指定したアセンブリ内の型に対する1つのメソッドのパラメーターを表示します。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 

注釈

返された配列には、入れ子にされた型が含まれます。The returned array includes nested types.

GetTypes メソッドがアセンブリで呼び出され、そのアセンブリ内の型が、まだ読み込まれていないアセンブリ内の型に依存している場合 (たとえば、2番目のアセンブリの型から派生した場合)、ReflectionTypeLoadException がスローされます。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. たとえば、最初のアセンブリが ReflectionOnlyLoad メソッドまたは ReflectionOnlyLoadFrom メソッドを使用して読み込まれ、2番目のアセンブリが読み込まれなかった場合に、これが発生する可能性があります。For example, this can happen if the first assembly was loaded with the ReflectionOnlyLoad or ReflectionOnlyLoadFrom methods, and the second assembly was not loaded. また、GetTypes メソッドが呼び出されたときに2番目のアセンブリが見つからない場合は、Load および LoadFile メソッドを使用してアセンブリを読み込んだときにも発生する可能性があります。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.

注意

型が別のアセンブリに転送されている場合は、返された配列には含まれません。If a type has been forwarded to another assembly, it is not included in the returned array. 型の転送の詳細については、「共通言語ランタイムでの型の転送」を参照してください。For information on type forwarding, see Type Forwarding in the Common Language Runtime.

Type オブジェクトの配列ではなく TypeInfo オブジェクトのコレクションを取得するには、Assembly.DefinedTypes プロパティを使用します。To retrieve a collection of TypeInfo objects instead of an array of Type objects, use the Assembly.DefinedTypes property.

適用対象