Assembly.GetTypes メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このアセンブリで定義されているすべての型を取得します。
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()
戻り値
このアセンブリで定義されているすべての型を格納している配列。
実装
例外
アセンブリには、読み込むことができない 1 つ以上の型が含まれています。 この例外の Types プロパティによって返される配列には、読み込まれた各型の Type オブジェクト、および読み込むことができなかった各型の null
が含まれています。LoaderExceptions プロパティには、読み込むことができなかった各型の例外が含まれています。
例
次の例では、指定したアセンブリ内の型に対する 1 つのメソッドのパラメーターを表示します。
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
注釈
返される配列には、入れ子になった型とパブリックでない型が含まれます。 パブリック型のみを取得するには、 メソッドを使用します GetExportedTypes 。
メソッドが GetTypes アセンブリで呼び出され、そのアセンブリ内の型が読み込まれていないアセンブリ内の型に依存している場合 (たとえば、2 番目のアセンブリの型から派生した場合) ReflectionTypeLoadException 、 がスローされます。 たとえば、最初のアセンブリが または ReflectionOnlyLoadFrom メソッドでReflectionOnlyLoad読み込まれ、2 番目のアセンブリが読み込まれていない場合に発生する可能性があります。 メソッドの呼び出し時GetTypesに 2 番目のアセンブリがLoad見つからない場合は、 メソッドと LoadFile メソッドを使用して読み込まれたアセンブリでも発生する可能性があります。
注意
型が別のアセンブリに転送されている場合、返される配列には含まれません。 型転送の詳細については、「 共通言語ランタイムでの型の転送」を参照してください。
オブジェクトの配列Typeではなく、オブジェクトのTypeInfoコレクションを取得するには、 プロパティをAssembly.DefinedTypes使用します。
適用対象
.NET