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

정의

이 어셈블리에 정의되어 있는 형식을 가져옵니다.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.

구현

예외

어셈블리에 로드할 수 없는 하나 이상의 형식이 포함되어 있습니다.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.

예제

다음 예제에서는 지정된 된 어셈블리의 형식에 대 한 메서드의 매개 변수를 표시합니다.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 어셈블리가 로드 되지 않은 (예를 들어 경우 두 번째 어셈블리의 형식에서 파생), 어셈블리의 형식에 종속 되는 어셈블리 및 형식에 메서드를 호출을 ReflectionTypeLoadException throw 됩니다.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 메서드 및 두 번째 어셈블리 로드 되지 않았습니다.For example, this can happen if the first assembly was loaded with the ReflectionOnlyLoad or ReflectionOnlyLoadFrom methods, and the second assembly was not loaded. 사용 하 여 로드 된 어셈블리를 사용 하 여 발생할 수도 있습니다는 LoadLoadFile 두 번째 어셈블리를 찾을 수 없는 경우 메서드를 GetTypes 메서드가 호출 됩니다.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.

컬렉션을 검색할 TypeInfo 개체의 배열이 아닌 Type 개체를 사용 하 여는 Assembly.DefinedTypes 속성입니다.To retrieve a collection of TypeInfo objects instead of an array of Type objects, use the Assembly.DefinedTypes property.

적용 대상