Type.GetType 메서드

정의

지정된 형식을 나타내는 Type 개체를 가져옵니다.Gets a Type object that represents the specified type.

오버로드

GetType()

현재 Type를 가져옵니다.Gets the current Type.

GetType(String)

대/소문자 구분 검색하여 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, performing a case-sensitive search.

GetType(String, Boolean)

대/소문자를 구분하여 검색하고 형식이 없으면 예외를 throw할지를 지정하여, 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

GetType(String, Boolean, Boolean)

대/소문자를 구분하여 검색할지 여부와 형식이 없으면 예외를 throw할지 여부를 지정하여, 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

형식을 찾을 수 없는 경우 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

형식을 찾을 수 없는 경우 대/소문자를 구분하는 검색을 수행할지 여부 및 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType()

현재 Type를 가져옵니다.Gets the current Type.

public:
 virtual Type ^ GetType();
public Type GetType ();
override this.GetType : unit -> Type
Public Function GetType () As Type

반환

현재 Type입니다.The current Type.

구현

예외

클래스 이니셜라이저가 호출되고 예외를 throw합니다.A class initializer is invoked and throws an exception.

추가 정보

GetType(String)

대/소문자 구분 검색하여 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, performing a case-sensitive search.

public:
 static Type ^ GetType(System::String ^ typeName);
public static Type GetType (string typeName);
static member GetType : string -> Type
Public Shared Function GetType (typeName As String) As Type

매개 변수

typeName
String

가져올 형식에 대한 어셈블리로 한정된 이름입니다.The assembly-qualified name of the type to get. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName. 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우 네임스페이스로 한정된 형식 이름만 제공하면 됩니다.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

반환

지정된 이름의 형식이 있으면 이를 반환하고 그렇지 않으면 null을 반환합니다.The type with the specified name, if found; otherwise, null.

예외

typeNamenull인 경우typeName is null.

클래스 이니셜라이저가 호출되고 예외를 throw합니다.A class initializer is invoked and throws an exception.

typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName 은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 IOException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 어셈블리는 이후 버전으로 컴파일되었습니다.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

예제

다음 예제에서는 검색 유형을 System.Int32 형식 개체를 사용 하 여 표시 하 고는 FullName 의 속성 System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

설명

에서 Type GetType 가져올수있는정규화된어셈블리이름을알고있는경우메서드를사용하여다른어셈블리의형식에대한개체를가져올수있습니다.AssemblyQualifiedNameYou can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType 에 지정 된 어셈블리를 로드 하면 typeName합니다.GetType causes loading of the assembly specified in typeName. Assembly.Load 메서드를 사용 하 여 어셈블리를 로드 한 다음 Assembly.GetType 또는 Assembly.GetTypes 메서드를 사용 하 여 개체를 Type 가져올 수도 있습니다.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. 컴파일 시간에 프로그램이 프로그램에 알려진 어셈블리에 있는 경우 typeof C# 또는 GetType Visual Basic의 연산자를 사용 하는 것이 더 효율적입니다.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

참고

하는 경우 typeName 찾을 수 없는 호출 합니다 GetType(String) 메서드가 반환 되는 null합니다.If typeName cannot be found, the call to the GetType(String) method returns null. 예외를 throw 하지 않습니다.It does not throw an exception. 제어할 수 있는지 여부는 예외가 발생의 오버 로드를 호출 합니다 GetType 있는 메서드를 throwOnError 매개 변수입니다.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

GetType 디스크에서 로드 된 어셈블리 에서만 작동 합니다.GetType only works on assemblies loaded from disk. 호출 하는 경우 GetType 정의 사용 하 여 동적 어셈블리에 정의 된 형식을 조회 하는 System.Reflection.Emit 서비스에 일관 되지 않은 동작이 발생할 수 있습니다.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. 동작을 동적 어셈블리 인지 영구적 이므로, 즉, 사용 하 여 만든 합니다 RunAndSave 또는 Save 모드 액세스는 System.Reflection.Emit.AssemblyBuilderAccess 열거형입니다.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. 동적 어셈블리를 지속적이 고 먼저 디스크에 쓴 경우 GetType 는 호출 로더 디스크에 저장 된 어셈블리를 찾아서, 해당 어셈블리를 로드 하 고 해당 어셈블리에서 형식을 검색 합니다.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. 어셈블리 경우 디스크에 저장 되지 않은 경우 GetType 가 호출 메서드는 반환 null합니다.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType 임시 동적 어셈블리를 인식 하지 못합니다 따라서 호출 GetType 일시적인에서 형식을 검색 하려면 동적 어셈블리는 다음과 같이 반환 됩니다. null합니다.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

사용 하도록 GetType 구독할 동적 모듈의 경우에 AppDomain.AssemblyResolve 이벤트 및 호출 GetType 저장 하기 전에 합니다.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. 이 고, 그렇지 메모리에 어셈블리의 두 복사본을 가져오게 됩니다.Otherwise, you will get two copies of the assembly in memory.

다음 표에서 메서드에서 반환 되는 기본 클래스의 멤버는 Get 메서드 형식에 반영 하는 경우.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

멤버 형식Member Type 정적Static Static이 아니고Non-Static
생성자Constructor 아니요No 아니요No
필드Field 아니요No 예.Yes. 필드는 항상 이름 및 서명에서 숨겨집니다.A field is always hide-by-name-and-signature.
이벤트Event 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
메서드Method 아니요No 예.Yes. (가상 및 비가상) 메서드 이름에서 숨김 또는 이름 및 서명으로 숨기기 수 있습니다.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
중첩된 형식Nested Type 아니요No 아니요No
속성Property 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
  1. 이름 및 서명으로 숨기기 모든 사용자 지정 한정자를 포함 하 여 서명의 부분 반환 형식, 매개 변수 형식, 센티널, 및 관리 되지 않는 호출 규칙을 고려 합니다.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. 이것은 이진 비교 합니다.This is a binary comparison.

  2. 리플렉션, 속성 및 이벤트는 이름 및 서명에서 숨겨집니다.For reflection, properties and events are hide-by-name-and-signature. 기본 클래스에서 get 및 set 접근자 모두를 사용 하 여 속성을 갖지만 파생된 클래스에 get 접근자만 하는 경우 파생된 클래스 속성을 기본 클래스 속성 숨기고 기본 클래스의 setter를 액세스할 수 없습니다.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. 사용자 지정 특성의 일부분이 아닌 공용 형식 시스템입니다.Custom attributes are not part of the common type system.

배열 또는 COM 형식을 검색할 수 없습니다는 이미 사용할 수 있는 클래스의 테이블에 로드 되지 않은 합니다.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName 수 형식 이름으로 한정 되어야 해당 네임 스페이스 또는 어셈블리 이름 사양에 포함 된 어셈블리의 정규화 된 이름.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName.

경우 typeName 네임 스페이스만 어셈블리 이름이 아니라 포함이 메서드를 호출 하는 개체의 어셈블리 및 Mscorlib.dll만 순서 대로 검색 합니다.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. TypeName 부분 또는 전체 어셈블리 이름의 정규화 된 경우이 메서드는 지정된 된 어셈블리에서 검색 합니다.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. 어셈블리에 강력한 이름이 있으면 전체 어셈블리 이름은 필수입니다.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName 속성에는 중첩 된 형식, 어셈블리 이름 및 제네릭 형식 인수를 포함 하 여 정규화 된 형식 이름을 반환 합니다.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic type arguments. 공용 언어 런타임에서 지 원하는 모든 컴파일러 중첩된 된 클래스의 단순한 이름 내보내고 리플렉션에서 다음 규칙에 따라 쿼리를 수행 하면 잘못 된 이름을 생성 합니다.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

참고

.NET framework 버전 2.0에서 프로세서 아키텍처가 어셈블리 id에 추가 되 고 어셈블리 이름 문자열의 일부로 지정할 수 있습니다.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. 예를 들어, "ProcessorArchitecture = msil"입니다.For example, "ProcessorArchitecture=msil". 그러나 반환 하는 문자열에서 제외 됩니다는 AssemblyQualifiedName 호환성을 위해 속성입니다.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. 형식을 만들어 로드할 수도 있습니다는 AssemblyName 개체의 적절 한 오버 로드에 전달 하는 Load 메서드.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. 사용할 수는 Assembly.GetType 어셈블리에서 형식을 로드 하는 방법입니다.You can then use the Assembly.GetType method to load types from the assembly. AssemblyName.ProcessorArchitecture을 참조하세요.See also AssemblyName.ProcessorArchitecture.

구분 기호Delimiter 의미Meaning
백슬래시(\)Backslash (\) 이스케이프 문자입니다.Escape character.
억음 악센트 기호 (')Backtick (`) 형식 매개 변수를 제네릭 형식 이름의 끝에 있는 수를 나타내는 하나 이상의 10 진수 앞에 옵니다.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
대괄호 ()Brackets ([]) 생성된 된 제네릭 형식;에 대 한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록을 내는 어셈블리의 정규화 된 유형을 묶습니다.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
쉼표 ()Comma (,) 어셈블리 이름을 앞에 옵니다.Precedes the Assembly name.
마침표 (입니다.)Period (.) 네임 스페이스 식별자를 나타냅니다.Denotes namespace identifiers.
더하기 기호 (+)Plus sign (+) 중첩된 된 클래스 앞에 옵니다.Precedes a nested class.

예를 들어, 클래스에 대 한 정규화 된 이름을이 같습니다.For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

네임 스페이스 TopNamespace.Sub+Namespace, 된 경우 문자열 앞에 더하기 기호 (+) 이스케이프 문자를 사용 해야 합니다. (\) 중첩 구분 기호로 해석 되지 않도록 합니다.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. 리플렉션 다음과 같이이 문자열을 내보냅니다.Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

"+ +"가 "\+\+", 및 "\"은 "\\"입니다.A "++" becomes "\+\+", and a "\" becomes "\\".

이 정규화 된 이름은 유지 되었다가 나중에 로드 하는 데는 Type합니다.This qualified name can be persisted and later used to load the Type. 찾아 로드 하는 Type를 사용 하 여 GetType 만 또는 어셈블리 정규화 된 형식 이름의 이름 형식을 사용 하 여 합니다.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType 형식을 사용 하 여 이름을 찾을 것을 Type 호출자의 어셈블리에서 찾은 다음 시스템 어셈블리에서.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType 어셈블리를 사용 하 여 정규화 된 형식 이름에 대 한 표시 됩니다는 Type 모든 어셈블리에 있습니다.GetType with the assembly qualified type name will look for the Type in any assembly.

형식 이름 형식이 참조 형식, 포인터 형식 또는 배열 형식 인지와 같은 형식에 대 한 추가 정보를 나타내는 후행 문자를 포함할 수 있습니다.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. 형식 이름 없이 이러한 후행 문자를 검색 하려면 사용 t.GetElementType().ToString()여기서 t 형식입니다.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

공간은 어셈블리 이름 제외한 모든 형식 이름 구성 요소에 적용 됩니다.Spaces are relevant in all type name components except the assembly name. 어셈블리 이름에 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시 됩니다.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

제네릭 형식의 이름을 억음 악센트 기호 끝납니다 (`), 제네릭 형식 인수 개수를 나타내는 숫자입니다.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. 이 이름 꾸미기의 목적은 컴파일러에서 제네릭 형식을 지원 형식 매개 변수 수가 다른 하지만 같은 이름의 동일한 범위에서 발생 수 있도록 합니다.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. 리플렉션 바뀐된 이름을 반환 하는 예를 들어 Tuple1and튜플2 제네릭 메서드에서 Tuple(Of T) 하 고 Tuple(Of T0, T1) Visual basic의 경우 또는 Tuple<T> 및 튜플\<T0, T1> Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

제네릭 형식의 형식 인수 목록을 괄호로 묶고 형식 인수는 쉼표로 구분 합니다.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. 예를 들어 제네릭 Dictionary<TKey,TValue> 두 형식 매개 변수가 있습니다.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 String 다음과 같이 표시 될 수 있습니다.A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

형식 인수 목록에는 어셈블리의 정규화 된 형식을 지정 하려면 어셈블리의 정규화 된 형식을 대괄호로 묶습니다.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. 이 고, 그렇지 어셈블리의 정규화 된 이름의 각 부분을 구분 하는 쉼표는 추가 형식 인수를 구분 기호로 해석 됩니다.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. 예를 들어를 Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 fromMyAssembly.dll String를 다음과 같이 지정할 수 있습니다.For example, a Dictionary<TKey,TValue> of MyType fromMyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

참고

형식 매개 변수 목록에 표시 되는 경우에 어셈블리의 정규화 된 형식에는 대괄호로 묶을 수 있습니다.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. 형식 매개 변수 목록에서 어셈블리 정규화 형식에 대 한 검색에 대 한 규칙을 정규화 제네릭이 아닌 형식에 대 한 규칙과 동일 합니다.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable 형식은 제네릭 형식의 특수 한 경우입니다.Nullable types are a special case of generic types. 예를 들어, null 허용 Int32 "System.Nullable'1[System.Int32]" 문자열에 의해 표시 됩니다.For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

참고

C#, c + + 및 Visual Basic 형식 연산자를 사용 하 여 nullable 형식을 가져올 수도 있습니다.In C#, C++, and Visual Basic you can also get nullable types using type operators. 예를 들어, null 허용 Boolean 형식을 반환한 typeof(Nullable<bool>) C#으로 하 여 Nullable<Boolean>::typeid c + +에서 GetType(Nullable(Of Boolean)) Visual Basic의 합니다.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

다음 표에서 사용 하 여 사용 하는 구문을 GetType 다양 한 형식에 대 한 합니다.The following table shows the syntax you use with GetType for various types.

가져오려는To Get 기능Use
Null 허용 Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
에 대 한 포인터에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
관리 되는 포인터 또는 참조 MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.Note that unlike pointers, references are limited to one level.
부모 클래스 및 중첩된 클래스A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
하한값으로 0 사용 하 여 1 차원 배열A one-dimensional array with a lower bound of 0 Type.GetType("MyType[]")
알 수 없는 하한값을 사용 하 여 1 차원 배열A one-dimensional array with an unknown lower bound Type.GetType("MyType[*]")
N 차원 배열An n-dimensional array 총 n-1 번 대괄호 안에 쉼표 (,)입니다.A comma (,) inside the brackets a total of n-1 times. 예를 들어 System.Object[,,] 나타내는 3 차원 Object 배열입니다.For example, System.Object[,,] represents a three-dimensional Object array.
1 차원 배열의 배열An array of one-dimensional arrays Type.GetType("MyType[][]")
알 수 없는 하위 범위를 사용 하 여 사각형 2 차원 배열A rectangular two-dimensional array with unknown lower bounds Type.GetType("MyType[,]")
하나의 형식 인수가 있는 제네릭 형식A generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수를 사용 하 여 제네릭 형식A generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 어셈블리의 정규화 된 형식 인수가 있는 제네릭 형식A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리의 정규화 된 형식 인수를 사용 하 여 어셈블리의 정규화 된 제네릭 형식An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
두 형식 인수가 있는 제네릭 형식인 형식 인수로 제네릭 형식A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

GetType(String, Boolean)

대/소문자를 구분하여 검색하고 형식이 없으면 예외를 throw할지를 지정하여, 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError);
public static Type GetType (string typeName, bool throwOnError);
static member GetType : string * bool -> Type
Public Shared Function GetType (typeName As String, throwOnError As Boolean) As Type

매개 변수

typeName
String

가져올 형식에 대한 어셈블리로 한정된 이름입니다.The assembly-qualified name of the type to get. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName. 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우 네임스페이스로 한정된 형식 이름만 제공하면 됩니다.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다.true to throw an exception if the type cannot be found; false to return null. 또한 false를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다.Specifying false also suppresses some other exception conditions, but not all of them. 예외 섹션을 참조하세요.See the Exceptions section.

반환

지정된 이름의 형식입니다.The type with the specified name. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다.In some cases, an exception is thrown regardless of the value of throwOnError. 예외 섹션을 참조하세요.See the Exceptions section.

예외

typeNamenull입니다.typeName is null.

클래스 이니셜라이저가 호출되고 예외가 발생합니다.A class initializer is invoked and throws an exception.

throwOnErrortrue이고 형식을 찾을 수 없습니다.throwOnError is true and the type is not found.

또는-or- throwOnErrortrue이고 typeName이 포함된 탭 등의 잘못된 문자를 포함합니다.throwOnError is true and typeName contains invalid characters, such as an embedded tab. 또는-or- throwOnErrortrue이고 typeName이 빈 문자열입니다.throwOnError is true and typeName is an empty string.

또는-or- throwOnErrortrue이고 typeName이 잘못된 크기를 가진 배열 형식을 나타냅니다.throwOnError is true and typeName represents an array type with an invalid size.

또는-or- typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

throwOnErrortrue이고 typeName이 잘못된 구문을 포함합니다.throwOnError is true and typeName contains invalid syntax. 예를 들어 "MyType[,*,]"입니다.For example, "MyType[,*,]".

또는-or- typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue 이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.throwOnError is true and the assembly or one of its dependencies was not found.

Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 대신 기본 클래스 예외 IOException을 catch합니다.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 어셈블리는 이후 버전으로 컴파일되었습니다.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

예제

다음 예제에서는 검색 유형을 System.Int32 형식 개체를 사용 하 여 표시 하 고는 FullName 의 속성 System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32. 이 예제에서는 형식 개체를 존재 하지 않는 어셈블리를 가리키는 경우 예외가 발생 합니다.If a type object refers to an assembly that does not exist, this example throws an exception.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

설명

에서 Type GetType 가져올수있는정규화된어셈블리이름을알고있는경우메서드를사용하여다른어셈블리의형식에대한개체를가져올수있습니다.AssemblyQualifiedNameYou can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType 에 지정 된 어셈블리를 로드 하면 typeName합니다.GetType causes loading of the assembly specified in typeName. Assembly.Load 메서드를 사용 하 여 어셈블리를 로드 한 다음 Assembly.GetType 또는 Assembly.GetTypes 메서드를 사용 하 여 개체를 Type 가져올 수도 있습니다.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. 컴파일 시간에 프로그램이 프로그램에 알려진 어셈블리에 있는 경우 typeof C# 또는 GetType Visual Basic의 연산자를 사용 하는 것이 더 효율적입니다.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

GetType 디스크에서 로드 된 어셈블리 에서만 작동 합니다.GetType only works on assemblies loaded from disk. 호출 하는 경우 GetType 정의 사용 하 여 동적 어셈블리에 정의 된 형식을 조회 하는 System.Reflection.Emit 서비스에 일관 되지 않은 동작이 발생할 수 있습니다.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. 동작을 동적 어셈블리 인지 영구적 이므로, 즉, 사용 하 여 만든 합니다 RunAndSave 또는 Save 모드 액세스는 System.Reflection.Emit.AssemblyBuilderAccess 열거형입니다.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. 동적 어셈블리를 지속적이 고 먼저 디스크에 쓴 경우 GetType 는 호출 로더 디스크에 저장 된 어셈블리를 찾아서, 해당 어셈블리를 로드 하 고 해당 어셈블리에서 형식을 검색 합니다.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. 어셈블리 경우 디스크에 저장 되지 않은 경우 GetType 가 호출 메서드는 반환 null합니다.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType 임시 동적 어셈블리를 인식 하지 못합니다 따라서 호출 GetType 일시적인에서 형식을 검색 하려면 동적 어셈블리는 다음과 같이 반환 됩니다. null합니다.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

사용 하도록 GetType 구독할 동적 모듈의 경우에 AppDomain.AssemblyResolve 이벤트 및 호출 GetType 저장 하기 전에 합니다.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. 이 고, 그렇지 메모리에 어셈블리의 두 복사본을 가져오게 됩니다.Otherwise, you will get two copies of the assembly in memory.

throwOnError 되나요 유형을 찾을 수 없습니다 하 고 특정 한 다른 예외 조건을 표시 하지 예외 섹션에 설명 된 대로 매개 변수를 지정 합니다.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. 값에 관계 없이 일부 예외가 throw 됩니다 throwOnError합니다.Some exceptions are thrown regardless of the value of throwOnError. 예를 들어 형식을 찾았지만 로드할 수 없습니다는 TypeLoadException 이 throw 경우에 throwOnErrorfalse합니다.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

다음 표에서 메서드에서 반환 되는 기본 클래스의 멤버는 Get 메서드 형식에 반영 하는 경우.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

멤버 형식Member Type 정적Static Static이 아니고Non-Static
생성자Constructor 아니요No 아니요No
필드Field 아니요No 예.Yes. 필드는 항상 이름 및 서명에서 숨겨집니다.A field is always hide-by-name-and-signature.
이벤트Event 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
메서드Method 아니요No 예.Yes. (가상 및 비가상) 메서드 이름에서 숨김 또는 이름 및 서명으로 숨기기 수 있습니다.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
중첩된 형식Nested Type 아니요No 아니요No
속성Property 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
  1. 이름 및 서명으로 숨기기 모든 사용자 지정 한정자를 포함 하 여 서명의 부분 반환 형식, 매개 변수 형식, 센티널, 및 관리 되지 않는 호출 규칙을 고려 합니다.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. 이것은 이진 비교 합니다.This is a binary comparison.

  2. 리플렉션, 속성 및 이벤트는 이름 및 서명에서 숨겨집니다.For reflection, properties and events are hide-by-name-and-signature. 기본 클래스에서 get 및 set 접근자 모두를 사용 하 여 속성을 갖지만 파생된 클래스에 get 접근자만 하는 경우 파생된 클래스 속성을 기본 클래스 속성 숨기고 기본 클래스의 setter를 액세스할 수 없습니다.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. 사용자 지정 특성의 일부분이 아닌 공용 형식 시스템입니다.Custom attributes are not part of the common type system.

배열 또는 COM 형식을 검색할 수 없습니다는 이미 사용할 수 있는 클래스의 테이블에 로드 되지 않은 합니다.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName 수 형식 이름으로 한정 되어야 해당 네임 스페이스 또는 어셈블리 이름 사양에 포함 된 어셈블리의 정규화 된 이름.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName.

경우 typeName 네임 스페이스만 어셈블리 이름이 아니라 포함이 메서드를 호출 하는 개체의 어셈블리 및 Mscorlib.dll만 순서 대로 검색 합니다.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. TypeName 부분 또는 전체 어셈블리 이름의 정규화 된 경우이 메서드는 지정된 된 어셈블리에서 검색 합니다.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. 어셈블리에 강력한 이름이 있으면 전체 어셈블리 이름은 필수입니다.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName 속성에는 중첩 된 형식, 어셈블리 이름 및 제네릭 인수를 포함 하 여 정규화 된 형식 이름을 반환 합니다.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic arguments. 공용 언어 런타임에서 지 원하는 모든 컴파일러 중첩된 된 클래스의 단순한 이름 내보내고 리플렉션에서 다음 규칙에 따라 쿼리를 수행 하면 잘못 된 이름을 생성 합니다.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

참고

.NET framework 버전 2.0에서 프로세서 아키텍처가 어셈블리 id에 추가 되 고 어셈블리 이름 문자열의 일부로 지정할 수 있습니다.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. 예를 들어, "ProcessorArchitecture = msil"입니다.For example, "ProcessorArchitecture=msil". 그러나 반환 하는 문자열에서 제외 됩니다는 AssemblyQualifiedName 호환성을 위해 속성입니다.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. 형식을 만들어 로드할 수도 있습니다는 AssemblyName 개체의 적절 한 오버 로드에 전달 하는 Load 메서드.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. 사용할 수는 Assembly.GetType 어셈블리에서 형식을 로드 하는 방법입니다.You can then use the Assembly.GetType method to load types from the assembly. AssemblyName.ProcessorArchitecture을 참조하세요.See also AssemblyName.ProcessorArchitecture.

구분 기호Delimiter 의미Meaning
백슬래시(\)Backslash (\) 이스케이프 문자입니다.Escape character.
억음 악센트 기호 (')Backtick (`) 형식 매개 변수를 제네릭 형식 이름의 끝에 있는 수를 나타내는 하나 이상의 10 진수 앞에 옵니다.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
대괄호 ()Brackets ([]) 생성된 된 제네릭 형식;에 대 한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록을 내는 어셈블리의 정규화 된 유형을 묶습니다.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
쉼표 ()Comma (,) 어셈블리 이름을 앞에 옵니다.Precedes the Assembly name.
마침표 (입니다.)Period (.) 네임 스페이스 식별자를 나타냅니다.Denotes namespace identifiers.
더하기 기호 (+)Plus sign (+) 중첩된 된 클래스 앞에 옵니다.Precedes a nested class.

예를 들어, 클래스에 대 한 정규화 된 이름을이 같습니다.For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

네임 스페이스 TopNamespace.Sub+Namespace, 된 경우 문자열 앞에 더하기 기호 (+) 이스케이프 문자를 사용 해야 합니다. (\) 중첩 구분 기호로 해석 되지 않도록 합니다.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. 리플렉션 다음과 같이이 문자열을 내보냅니다.Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

"+ +"가 "\+\+", 및 "\"은 "\\"입니다.A "++" becomes "\+\+", and a "\" becomes "\\".

이 정규화 된 이름은 유지 되었다가 나중에 로드 하는 데는 Type합니다.This qualified name can be persisted and later used to load the Type. 찾아 로드 하는 Type를 사용 하 여 GetType 만 또는 어셈블리 정규화 된 형식 이름의 이름 형식을 사용 하 여 합니다.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType 형식을 사용 하 여 이름을 찾을 것을 Type 호출자의 어셈블리에서 찾은 다음 시스템 어셈블리에서.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType 어셈블리를 사용 하 여 정규화 된 형식 이름에 대 한 표시 됩니다는 Type 모든 어셈블리에 있습니다.GetType with the assembly qualified type name will look for the Type in any assembly.

형식 이름 형식이 참조 형식, 포인터 형식 또는 배열 형식 인지와 같은 형식에 대 한 추가 정보를 나타내는 후행 문자를 포함할 수 있습니다.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. 형식 이름 없이 이러한 후행 문자를 검색 하려면 사용 t.GetElementType().ToString()여기서 t 형식입니다.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

공간은 어셈블리 이름 제외한 모든 형식 이름 구성 요소에 적용 됩니다.Spaces are relevant in all type name components except the assembly name. 어셈블리 이름에 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시 됩니다.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

제네릭 형식의 이름을 억음 악센트 기호 끝납니다 (`), 제네릭 형식 인수 개수를 나타내는 숫자입니다.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. 이 이름 꾸미기의 목적은 컴파일러에서 제네릭 형식을 지원 형식 매개 변수 수가 다른 하지만 같은 이름의 동일한 범위에서 발생 수 있도록 합니다.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. 리플렉션 바뀐된 이름을 반환 하는 예를 들어 Tuple1and튜플2 제네릭 메서드에서 Tuple(Of T) 하 고 Tuple(Of T0, T1) Visual basic의 경우 또는 Tuple<T> 및 튜플\<T0, T1> Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

제네릭 형식의 형식 인수 목록을 괄호로 묶고 형식 인수는 쉼표로 구분 합니다.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. 예를 들어 제네릭 Dictionary<TKey,TValue> 두 형식 매개 변수가 있습니다.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 String 다음과 같이 표시 될 수 있습니다.A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

형식 인수 목록에는 어셈블리의 정규화 된 형식을 지정 하려면 어셈블리의 정규화 된 형식을 대괄호로 묶습니다.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. 이 고, 그렇지 어셈블리의 정규화 된 이름의 각 부분을 구분 하는 쉼표는 추가 형식 인수를 구분 기호로 해석 됩니다.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. 예를 들어를 Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 MyAssembly.dll에서 String, 다음과 같이 지정할 수 있습니다.For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

참고

형식 매개 변수 목록에 표시 되는 경우에 어셈블리의 정규화 된 형식에는 대괄호로 묶을 수 있습니다.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. 형식 매개 변수 목록에서 어셈블리 정규화 형식에 대 한 검색에 대 한 규칙을 정규화 제네릭이 아닌 형식에 대 한 규칙과 동일 합니다.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable 형식은 제네릭 형식의 특수 한 경우입니다.Nullable types are a special case of generic types. 예를 들어, null 허용 Int32 "System.Nullable'1[System.Int32]" 문자열에 의해 표시 됩니다.For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

참고

C#, c + + 및 Visual Basic 형식 연산자를 사용 하 여 nullable 형식을 가져올 수도 있습니다.In C#, C++, and Visual Basic you can also get nullable types using type operators. 예를 들어, null 허용 Boolean 형식을 반환한 typeof(Nullable<bool>) C#으로 하 여 Nullable<Boolean>::typeid c + +에서 GetType(Nullable(Of Boolean)) Visual Basic의 합니다.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

다음 표에서 사용 하 여 사용 하는 구문을 GetType 다양 한 형식에 대 한 합니다.The following table shows the syntax you use with GetType for various types.

가져오려는To Get 기능Use
Null 허용 Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
에 대 한 포인터에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
관리 되는 포인터 또는 참조 MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.Note that unlike pointers, references are limited to one level.
부모 클래스 및 중첩된 클래스A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
하한값으로 0 사용 하 여 1 차원 배열A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
알 수 없는 하한값을 사용 하 여 1 차원 배열A one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
N 차원 배열An n-dimensional array 총 n-1 번 대괄호 안에 쉼표 (,)입니다.A comma (,) inside the brackets a total of n-1 times. 예를 들어 System.Object[,,] 나타내는 3 차원 Object 배열입니다.For example, System.Object[,,] represents a three-dimensional Object array.
2 차원 배열의 배열A two-dimensional array's array Type.GetType("MyArray[][]")
알 수 없는 하위 범위를 사용 하 여 사각형 2 차원 배열A rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
하나의 형식 인수가 있는 제네릭 형식A generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수를 사용 하 여 제네릭 형식A generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 어셈블리의 정규화 된 형식 인수가 있는 제네릭 형식A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리의 정규화 된 형식 인수를 사용 하 여 어셈블리의 정규화 된 제네릭 형식An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
두 형식 인수가 있는 제네릭 형식인 형식 인수로 제네릭 형식A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

GetType(String, Boolean, Boolean)

대/소문자를 구분하여 검색할지 여부와 형식이 없으면 예외를 throw할지 여부를 지정하여, 지정된 이름의 Type을 가져옵니다.Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError, bool ignoreCase);
public static Type GetType (string typeName, bool throwOnError, bool ignoreCase);
static member GetType : string * bool * bool -> Type
Public Shared Function GetType (typeName As String, throwOnError As Boolean, ignoreCase As Boolean) As Type

매개 변수

typeName
String

가져올 형식에 대한 어셈블리로 한정된 이름입니다.The assembly-qualified name of the type to get. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName. 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우 네임스페이스로 한정된 형식 이름만 제공하면 됩니다.If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다.true to throw an exception if the type cannot be found; false to return null. 또한 false를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다.Specifying false also suppresses some other exception conditions, but not all of them. 예외 섹션을 참조하세요.See the Exceptions section.

ignoreCase
Boolean

true에 대해 대/소문자를 구분하지 않는 검색을 수행하려는 경우 typeName이고, false에 대해 대/소문자를 구분하는 검색을 수행하려는 경우 typeName입니다.true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

반환

지정된 이름의 형식입니다.The type with the specified name. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다.In some cases, an exception is thrown regardless of the value of throwOnError. 예외 섹션을 참조하세요.See the Exceptions section.

예외

typeNamenull인 경우typeName is null.

클래스 이니셜라이저가 호출되고 예외가 발생합니다.A class initializer is invoked and throws an exception.

throwOnErrortrue이고 형식을 찾을 수 없습니다.throwOnError is true and the type is not found.

또는-or- throwOnErrortrue이고 typeName이 포함된 탭 등의 잘못된 문자를 포함합니다.throwOnError is true and typeName contains invalid characters, such as an embedded tab. 또는-or- throwOnErrortrue이고 typeName이 빈 문자열입니다.throwOnError is true and typeName is an empty string.

또는-or- throwOnErrortrue이고 typeName이 잘못된 크기를 가진 배열 형식을 나타냅니다.throwOnError is true and typeName represents an array type with an invalid size.

또는-or- typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

throwOnErrortrue이고 typeName이 잘못된 구문을 포함합니다.throwOnError is true and typeName contains invalid syntax. 예를 들어 "MyType[,*,]"입니다.For example, "MyType[,*,]".

또는-or- typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.throwOnError is true and the assembly or one of its dependencies was not found.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

버전 2.0 이상의 공용 언어 런타임이 현재 로드되어 있으며 어셈블리는 이후 버전으로 컴파일되었습니다.Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

설명

에서 Type GetType 가져올수있는정규화된어셈블리이름을알고있는경우메서드를사용하여다른어셈블리의형식에대한개체를가져올수있습니다.AssemblyQualifiedNameYou can use the GetType method to obtain a Type object for a type in another assembly if you know its assembly-qualified name, which can be obtained from AssemblyQualifiedName. GetType 에 지정 된 어셈블리를 로드 하면 typeName합니다.GetType causes loading of the assembly specified in typeName. Assembly.Load 메서드를 사용 하 여 어셈블리를 로드 한 다음 Assembly.GetType 또는 Assembly.GetTypes 메서드를 사용 하 여 개체를 Type 가져올 수도 있습니다.You can also load an assembly using the Assembly.Load method, and then use the Assembly.GetType or Assembly.GetTypes method to get Type objects. 컴파일 시간에 프로그램이 프로그램에 알려진 어셈블리에 있는 경우 typeof C# 또는 GetType Visual Basic의 연산자를 사용 하는 것이 더 효율적입니다.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C# or the GetType operator in Visual Basic.

GetType 디스크에서 로드 된 어셈블리 에서만 작동 합니다.GetType only works on assemblies loaded from disk. 호출 하는 경우 GetType 정의 사용 하 여 동적 어셈블리에 정의 된 형식을 조회 하는 System.Reflection.Emit 서비스에 일관 되지 않은 동작이 발생할 수 있습니다.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. 동작을 동적 어셈블리 인지 영구적 이므로, 즉, 사용 하 여 만든 합니다 RunAndSave 또는 Save 모드 액세스는 System.Reflection.Emit.AssemblyBuilderAccess 열거형입니다.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. 동적 어셈블리를 지속적이 고 먼저 디스크에 쓴 경우 GetType 는 호출 로더 디스크에 저장 된 어셈블리를 찾아서, 해당 어셈블리를 로드 하 고 해당 어셈블리에서 형식을 검색 합니다.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. 어셈블리 경우 디스크에 저장 되지 않은 경우 GetType 가 호출 메서드는 반환 null합니다.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType 임시 동적 어셈블리를 인식 하지 못합니다 따라서 호출 GetType 일시적인에서 형식을 검색 하려면 동적 어셈블리는 다음과 같이 반환 됩니다. null합니다.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

사용 하도록 GetType 구독할 동적 모듈의 경우에 AppDomain.AssemblyResolve 이벤트 및 호출 GetType 저장 하기 전에 합니다.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. 이 고, 그렇지 메모리에 어셈블리의 두 복사본을 가져오게 됩니다.Otherwise, you will get two copies of the assembly in memory.

throwOnError 되나요 유형을 찾을 수 없습니다 하 고 특정 한 다른 예외 조건을 표시 하지 예외 섹션에 설명 된 대로 매개 변수를 지정 합니다.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. 값에 관계 없이 일부 예외가 throw 됩니다 throwOnError합니다.Some exceptions are thrown regardless of the value of throwOnError. 예를 들어 형식을 찾았지만 로드할 수 없습니다는 TypeLoadException 이 throw 경우에 throwOnErrorfalse합니다.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

다음 표에서 메서드에서 반환 되는 기본 클래스의 멤버는 Get 메서드 형식에 반영 하는 경우.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

멤버 형식Member Type 정적Static Static이 아니고Non-Static
생성자Constructor 아니요No 아니요No
필드Field 아니요No 예.Yes. 필드는 항상 이름 및 서명에서 숨겨집니다.A field is always hide-by-name-and-signature.
이벤트Event 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
메서드Method 아니요No 예.Yes. (가상 및 비가상) 메서드 이름에서 숨김 또는 이름 및 서명으로 숨기기 수 있습니다.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
중첩된 형식Nested Type 아니요No 아니요No
속성Property 적용할 수 없음Not applicable 공용 형식 시스템 규칙의 상속 속성을 구현 하는 메서드의 것과 동일 된다는 것입니다.The common type system rule is that the inheritance is the same as that of the methods that implement the property. 리플렉션 속성 이름 및 서명으로 숨기기 취급 됩니다.Reflection treats properties as hide-by-name-and-signature. 참고 2 아래를 참조 하세요.See note 2 below.
  1. 이름 및 서명으로 숨기기 모든 사용자 지정 한정자를 포함 하 여 서명의 부분 반환 형식, 매개 변수 형식, 센티널, 및 관리 되지 않는 호출 규칙을 고려 합니다.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. 이것은 이진 비교 합니다.This is a binary comparison.

  2. 리플렉션, 속성 및 이벤트는 이름 및 서명에서 숨겨집니다.For reflection, properties and events are hide-by-name-and-signature. 기본 클래스에서 get 및 set 접근자 모두를 사용 하 여 속성을 갖지만 파생된 클래스에 get 접근자만 하는 경우 파생된 클래스 속성을 기본 클래스 속성 숨기고 기본 클래스의 setter를 액세스할 수 없습니다.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. 사용자 지정 특성의 일부분이 아닌 공용 형식 시스템입니다.Custom attributes are not part of the common type system.

배열 또는 COM 형식을 검색할 수 없습니다는 이미 사용할 수 있는 클래스의 테이블에 로드 되지 않은 합니다.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName 수 형식 이름으로 한정 되어야 해당 네임 스페이스 또는 어셈블리 이름 사양에 포함 된 어셈블리의 정규화 된 이름.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. AssemblyQualifiedName을 참조하세요.See AssemblyQualifiedName.

경우 typeName 네임 스페이스만 어셈블리 이름이 아니라 포함이 메서드를 호출 하는 개체의 어셈블리 및 Mscorlib.dll만 순서 대로 검색 합니다.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. TypeName 부분 또는 전체 어셈블리 이름의 정규화 된 경우이 메서드는 지정된 된 어셈블리에서 검색 합니다.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. 어셈블리에 강력한 이름이 있으면 전체 어셈블리 이름은 필수입니다.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName 속성에는 중첩 된 형식, 어셈블리 이름 및 형식 인수를 포함 하 여 정규화 된 형식 이름을 반환 합니다.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and type arguments. 공용 언어 런타임에서 지 원하는 모든 컴파일러 중첩된 된 클래스의 단순한 이름 내보내고 리플렉션에서 다음 규칙에 따라 쿼리를 수행 하면 잘못 된 이름을 생성 합니다.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

참고

.NET framework 버전 2.0에서 프로세서 아키텍처가 어셈블리 id에 추가 되 고 어셈블리 이름 문자열의 일부로 지정할 수 있습니다.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. 예를 들어, "ProcessorArchitecture = msil"입니다.For example, "ProcessorArchitecture=msil". 그러나 반환 하는 문자열에서 제외 됩니다는 AssemblyQualifiedName 호환성을 위해 속성입니다.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. 형식을 만들어 로드할 수도 있습니다는 AssemblyName 개체의 적절 한 오버 로드에 전달 하는 Load 메서드.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. 사용할 수는 Assembly.GetType 어셈블리에서 형식을 로드 하는 방법입니다.You can then use the Assembly.GetType method to load types from the assembly. AssemblyName.ProcessorArchitecture을 참조하세요.See also AssemblyName.ProcessorArchitecture.

구분 기호Delimiter 의미Meaning
백슬래시(\)Backslash (\) 이스케이프 문자입니다.Escape character.
억음 악센트 기호 (')Backtick (`) 형식 매개 변수를 제네릭 형식 이름의 끝에 있는 수를 나타내는 하나 이상의 10 진수 앞에 옵니다.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
대괄호 ()Brackets ([]) 생성된 된 제네릭 형식;에 대 한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록을 내는 어셈블리의 정규화 된 유형을 묶습니다.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
쉼표 ()Comma (,) 어셈블리 이름을 앞에 옵니다.Precedes the Assembly name.
마침표 (입니다.)Period (.) 네임 스페이스 식별자를 나타냅니다.Denotes namespace identifiers.
더하기 기호 (+)Plus sign (+) 중첩된 된 클래스 앞에 옵니다.Precedes a nested class.

예를 들어, 클래스에 대 한 정규화 된 이름을이 같습니다.For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

네임 스페이스 TopNamespace.Sub+Namespace, 된 경우 문자열 앞에 더하기 기호 (+) 이스케이프 문자를 사용 해야 합니다. (\) 중첩 구분 기호로 해석 되지 않도록 합니다.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. 리플렉션 다음과 같이이 문자열을 내보냅니다.Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

"+ +"가 "\+\+", 및 "\"은 "\\"입니다.A "++" becomes "\+\+", and a "\" becomes "\\".

이 정규화 된 이름은 유지 되었다가 나중에 로드 하는 데는 Type합니다.This qualified name can be persisted and later used to load the Type. 찾아 로드 하는 Type를 사용 하 여 GetType 만 또는 어셈블리 정규화 된 형식 이름의 이름 형식을 사용 하 여 합니다.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType 형식을 사용 하 여 이름을 찾을 것을 Type 호출자의 어셈블리에서 찾은 다음 시스템 어셈블리에서.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType 어셈블리를 사용 하 여 정규화 된 형식 이름에 대 한 표시 됩니다는 Type 모든 어셈블리에 있습니다.GetType with the assembly qualified type name will look for the Type in any assembly.

형식 이름 형식이 참조 형식, 포인터 형식 또는 배열 형식 인지와 같은 형식에 대 한 추가 정보를 나타내는 후행 문자를 포함할 수 있습니다.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. 형식 이름 없이 이러한 후행 문자를 검색 하려면 사용 t.GetElementType().ToString()여기서 t 형식입니다.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

공간은 어셈블리 이름 제외한 모든 형식 이름 구성 요소에 적용 됩니다.Spaces are relevant in all type name components except the assembly name. 어셈블리 이름에 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시 됩니다.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

제네릭 형식의 이름을 억음 악센트 기호 끝납니다 (`), 제네릭 형식 인수 개수를 나타내는 숫자입니다.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. 이 이름 꾸미기의 목적은 컴파일러에서 제네릭 형식을 지원 형식 매개 변수 수가 다른 하지만 같은 이름의 동일한 범위에서 발생 수 있도록 합니다.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. 리플렉션 바뀐된 이름을 반환 하는 예를 들어 Tuple1and튜플2 제네릭 메서드에서 Tuple(Of T) 하 고 Tuple(Of T0, T1) Visual basic의 경우 또는 Tuple<T> 및 튜플\<T0, T1> Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

제네릭 형식의 형식 인수 목록을 괄호로 묶고 형식 인수는 쉼표로 구분 합니다.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. 예를 들어 제네릭 Dictionary<TKey,TValue> 두 형식 매개 변수가 있습니다.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 String 다음과 같이 표시 될 수 있습니다.A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

형식 인수 목록에는 어셈블리의 정규화 된 형식을 지정 하려면 어셈블리의 정규화 된 형식을 대괄호로 묶습니다.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. 이 고, 그렇지 어셈블리의 정규화 된 이름의 각 부분을 구분 하는 쉼표는 추가 형식 인수를 구분 기호로 해석 됩니다.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. 예를 들어를 Dictionary<TKey,TValue>MyType 형식의 키를 사용 하 여 MyAssembly.dll에서 String, 다음과 같이 지정할 수 있습니다.For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

참고

형식 매개 변수 목록에 표시 되는 경우에 어셈블리의 정규화 된 형식에는 대괄호로 묶을 수 있습니다.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. 형식 매개 변수 목록에서 어셈블리 정규화 형식에 대 한 검색에 대 한 규칙을 정규화 제네릭이 아닌 형식에 대 한 규칙과 동일 합니다.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Nullable 형식은 제네릭 형식의 특수 한 경우입니다.Nullable types are a special case of generic types. 예를 들어, null 허용 Int32 "System.Nullable'1[System.Int32]" 문자열에 의해 표시 됩니다.For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

참고

C#, c + + 및 Visual Basic 형식 연산자를 사용 하 여 nullable 형식을 가져올 수도 있습니다.In C#, C++, and Visual Basic you can also get nullable types using type operators. 예를 들어, null 허용 Boolean 형식을 반환한 typeof(Nullable<bool>) C#으로 하 여 Nullable<Boolean>::typeid c + +에서 GetType(Nullable(Of Boolean)) Visual Basic의 합니다.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

다음 표에서 사용 하 여 사용 하는 구문을 GetType 다양 한 형식에 대 한 합니다.The following table shows the syntax you use with GetType for various types.

가져오려는To Get 기능Use
Null 허용 Int32A nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
에 대 한 포인터에 대 한 관리 되지 않는 포인터입니다. MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
관리 되는 포인터 또는 참조 MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.Note that unlike pointers, references are limited to one level.
부모 클래스 및 중첩된 클래스A parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
하한값으로 0 사용 하 여 1 차원 배열A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
알 수 없는 하한값을 사용 하 여 1 차원 배열A one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
N 차원 배열An n-dimensional array 총 n-1 번 대괄호 안에 쉼표 (,)입니다.A comma (,) inside the brackets a total of n-1 times. 예를 들어 System.Object[,,] 나타내는 3 차원 Object 배열입니다.For example, System.Object[,,] represents a three-dimensional Object array.
2 차원 배열의 배열A two-dimensional array's array Type.GetType("MyArray[][]")
알 수 없는 하위 범위를 사용 하 여 사각형 2 차원 배열A rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
하나의 형식 인수가 있는 제네릭 형식A generic type with one type argument Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수를 사용 하 여 제네릭 형식A generic type with two type arguments Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 어셈블리의 정규화 된 형식 인수가 있는 제네릭 형식A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리의 정규화 된 형식 인수를 사용 하 여 어셈블리의 정규화 된 제네릭 형식An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
두 형식 인수가 있는 제네릭 형식인 형식 인수로 제네릭 형식A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type)) As Type

매개 변수

typeName
String

가져올 형식의 이름입니다.The name of the type to get. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. assemblyResolver 매개 변수가 제공되거나 표준 형식 확인이 사용되는 경우 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있지 않으면 typeName은 어셈블리로 한정된 이름이어야 합니다(AssemblyQualifiedName 참조). 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우에는 네임스페이스로 한정된 형식 이름을 제공해도 충분합니다.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다.A method that locates and returns the assembly that is specified in typeName. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다.The assembly name is passed to assemblyResolver as an AssemblyName object. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다.If typeName does not contain the name of an assembly, assemblyResolver is not called. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.If assemblyResolver is not supplied, standard assembly resolution is performed.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다.Doing so could result in elevation of privilege for malicious code. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. 어셈블리가 제공되지 않는 경우 typeResolver 메서드에서 어셈블리를 제공할 수 있습니다.If no assembly is provided, the typeResolver method can provide one. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 false가 전달됩니다.The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers.

반환

지정된 이름을 가진 형식이거나, 형식이 없으면 null입니다.The type with the specified name, or null if the type is not found.

예외

typeNamenull인 경우typeName is null.

클래스 이니셜라이저가 호출되고 예외를 throw합니다.A class initializer is invoked and throws an exception.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

또는-or- typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName 은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

또는-or- typeName이 잘못된 어셈블리 이름을 포함합니다.typeName contains an invalid assembly name.

또는-or- typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.typeName is a valid assembly name without a type name.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

어셈블리가 현재 로드된 버전보다 이후 버전의 공용 언어 런타임으로 컴파일되었습니다.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

설명

이 메서드와 대 한 세부 정보에 대 한 사용 시나리오는 assemblyResolver 하 고 typeResolver 에서 매개 변수를 찾을 수 있습니다는 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 메서드 오버 로드 합니다.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

참고

하는 경우 typeName 찾을 수 없는 호출 합니다 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) 메서드가 반환 되는 null합니다.If typeName cannot be found, the call to the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) method returns null. 예외를 throw 하지 않습니다.It does not throw an exception. 제어할 수 있는지 여부는 예외가 발생의 오버 로드를 호출 합니다 GetType 있는 메서드를 throwOnError 매개 변수입니다.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

이 메서드 오버 로드는 호출 동일 합니다 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 메서드 오버 로드 하 고 지정 false 에 대 한 합니다 throwOnErrorignoreCase 매개 변수.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the throwOnError and ignoreCase parameters.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

형식을 찾을 수 없는 경우 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver, bool throwOnError);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> * bool -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type), throwOnError As Boolean) As Type

매개 변수

typeName
String

가져올 형식의 이름입니다.The name of the type to get. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. assemblyResolver 매개 변수가 제공되거나 표준 형식 확인이 사용되는 경우 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있지 않으면 typeName은 어셈블리로 한정된 이름이어야 합니다(AssemblyQualifiedName 참조). 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우에는 네임스페이스로 한정된 형식 이름을 제공해도 충분합니다.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다.A method that locates and returns the assembly that is specified in typeName. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다.The assembly name is passed to assemblyResolver as an AssemblyName object. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다.If typeName does not contain the name of an assembly, assemblyResolver is not called. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.If assemblyResolver is not supplied, standard assembly resolution is performed.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다.Doing so could result in elevation of privilege for malicious code. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. 어셈블리가 제공되지 않는 경우 이 메서드에서 어셈블리를 제공할 수 있습니다.If no assembly is provided, the method can provide one. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 false가 전달됩니다.The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다.true to throw an exception if the type cannot be found; false to return null. 또한 false를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다.Specifying false also suppresses some other exception conditions, but not all of them. 예외 섹션을 참조하세요.See the Exceptions section.

반환

지정된 이름의 형식입니다.The type with the specified name. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다.In some cases, an exception is thrown regardless of the value of throwOnError. 예외 섹션을 참조하세요.See the Exceptions section.

예외

typeNamenull인 경우typeName is null.

클래스 이니셜라이저가 호출되고 예외가 발생합니다.A class initializer is invoked and throws an exception.

throwOnErrortrue이고 형식을 찾을 수 없습니다.throwOnError is true and the type is not found.

또는-or- throwOnErrortrue이고 typeName이 포함된 탭 등의 잘못된 문자를 포함합니다.throwOnError is true and typeName contains invalid characters, such as an embedded tab. 또는-or- throwOnErrortrue이고 typeName이 빈 문자열입니다.throwOnError is true and typeName is an empty string.

또는-or- throwOnErrortrue이고 typeName이 잘못된 크기를 가진 배열 형식을 나타냅니다.throwOnError is true and typeName represents an array type with an invalid size.

또는-or- typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

또는-or- throwOnErrortrue이고 typeName이 잘못된 구문(예: "MyType[,*,]")을 포함합니다.throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]").

또는-or- typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.throwOnError is true and the assembly or one of its dependencies was not found.

또는-or- typeName이 잘못된 어셈블리 이름을 포함합니다.typeName contains an invalid assembly name.

또는-or- typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.typeName is a valid assembly name without a type name.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

어셈블리가 현재 로드된 버전보다 이후 버전의 공용 언어 런타임으로 컴파일되었습니다.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

설명

이 메서드와 대 한 세부 정보에 대 한 사용 시나리오는 assemblyResolver 하 고 typeResolver 에서 매개 변수를 찾을 수 있습니다는 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 메서드 오버 로드 합니다.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

이 메서드 오버 로드는 호출에서와 동일 합니다 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 메서드 오버 로드 하 고 지정 false 에 대 한는 ignoreCase 매개 변수입니다.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the ignoreCase parameter.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

형식을 찾을 수 없는 경우 대/소문자를 구분하는 검색을 수행할지 여부 및 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public:
 static Type ^ GetType(System::String ^ typeName, Func<System::Reflection::AssemblyName ^, System::Reflection::Assembly ^> ^ assemblyResolver, Func<System::Reflection::Assembly ^, System::String ^, bool, Type ^> ^ typeResolver, bool throwOnError, bool ignoreCase);
public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError, bool ignoreCase);
static member GetType : string * Func<System.Reflection.AssemblyName, System.Reflection.Assembly> * Func<System.Reflection.Assembly, string, bool, Type> * bool * bool -> Type
Public Shared Function GetType (typeName As String, assemblyResolver As Func(Of AssemblyName, Assembly), typeResolver As Func(Of Assembly, String, Boolean, Type), throwOnError As Boolean, ignoreCase As Boolean) As Type

매개 변수

typeName
String

가져올 형식의 이름입니다.The name of the type to get. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다.If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. assemblyResolver 매개 변수가 제공되거나 표준 형식 확인이 사용되는 경우 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있지 않으면 typeName은 어셈블리로 한정된 이름이어야 합니다(AssemblyQualifiedName 참조). 형식이 현재 실행 중인 어셈블리나 Mscorlib.dll에 있는 경우에는 네임스페이스로 한정된 형식 이름을 제공해도 충분합니다.If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다.A method that locates and returns the assembly that is specified in typeName. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다.The assembly name is passed to assemblyResolver as an AssemblyName object. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다.If typeName does not contain the name of an assembly, assemblyResolver is not called. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.If assemblyResolver is not supplied, standard assembly resolution is performed.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다.Doing so could result in elevation of privilege for malicious code. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다.A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. 어셈블리가 제공되지 않는 경우 이 메서드에서 어셈블리를 제공할 수 있습니다.If no assembly is provided, the method can provide one. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 ignoreCase의 값이 전달됩니다.The method also takes a parameter that specifies whether to perform a case-insensitive search; the value of ignoreCase is passed to that parameter.

주의 알 수 없거나 신뢰할 수 없는 호출자의 메서드는 전달하지 마십시오.Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다.true to throw an exception if the type cannot be found; false to return null. 또한 false를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다.Specifying false also suppresses some other exception conditions, but not all of them. 예외 섹션을 참조하세요.See the Exceptions section.

ignoreCase
Boolean

true에 대해 대/소문자를 구분하지 않는 검색을 수행하려는 경우 typeName이고, false에 대해 대/소문자를 구분하는 검색을 수행하려는 경우 typeName입니다.true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

반환

지정된 이름의 형식입니다.The type with the specified name. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다.If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다.In some cases, an exception is thrown regardless of the value of throwOnError. 예외 섹션을 참조하세요.See the Exceptions section.

예외

typeNamenull입니다.typeName is null.

클래스 이니셜라이저가 호출되고 예외가 발생합니다.A class initializer is invoked and throws an exception.

throwOnErrortrue이고 형식을 찾을 수 없습니다.throwOnError is true and the type is not found.

또는-or- throwOnErrortrue이고 typeName이 포함된 탭 등의 잘못된 문자를 포함합니다.throwOnError is true and typeName contains invalid characters, such as an embedded tab. 또는-or- throwOnErrortrue이고 typeName이 빈 문자열입니다.throwOnError is true and typeName is an empty string.

또는-or- throwOnErrortrue이고 typeName이 잘못된 크기를 가진 배열 형식을 나타냅니다.throwOnError is true and typeName represents an array type with an invalid size.

또는-or- typeNameTypedReference 배열을 나타냅니다.typeName represents an array of TypedReference.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

또는-or- throwOnErrortrue이고 typeName이 잘못된 구문(예: "MyType[,*,]")을 포함합니다.throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]").

또는-or- typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

또는-or- typeName은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.typeName represents a generic type that has an incorrect number of type arguments.

또는-or- typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.throwOnError is true and the assembly or one of its dependencies was not found.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.The assembly or one of its dependencies was found, but could not be loaded.

또는-or- typeName이 잘못된 어셈블리 이름을 포함합니다.typeName contains an invalid assembly name.

또는-or- typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.typeName is a valid assembly name without a type name.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나가 올바르지 않습니다.The assembly or one of its dependencies is not valid.

또는-or-

어셈블리가 현재 로드된 버전보다 이후 버전의 공용 언어 런타임으로 컴파일되었습니다.The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

설명

이 메서드 오버 로드 및 연결 된 오버 로드를 사용 하 여 (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) 하 고 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean))의 기본 구현을 바꿀는 GetType 유연한 구현 사용 하 여 메서드.Use this method overload and its associated overloads (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) and GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)) to replace the default implementation of the GetType method with more flexible implementations. 형식 이름 및 포함 하는 어셈블리의 이름을 확인 하는 사용자 고유의 메서드를 제공 하 여 다음을 수행할 수 있습니다.By providing your own methods that resolve type names and the names of the assemblies that contain them, you can do the following:

  • 형식에서 로드 되는 어셈블리의 버전을 제어 합니다.Control which version of an assembly a type is loaded from.

  • 어셈블리 이름을 포함 하지 않는 형식 이름을 검색할 수 있는 다른 위치를 제공 합니다.Provide another place to look for a type name that does not include an assembly name.

  • 부분 어셈블리 이름을 사용 하 여 어셈블리를 로드 합니다.Load assemblies using partial assembly names.

  • 서브 클래스를 반환 System.Type 는 CLR (공용 언어 런타임)에서 만들어지지 않습니다.Return subclasses of System.Type that are not created by the common language runtime (CLR).

예를 들어 버전 독립적 serialization에서이 메서드를 사용 하면 부분 이름을 사용 하 여 "최적" 어셈블리를 검색할 수 있습니다.For example, in version-tolerant serialization this method enables you to search for a "best fit" assembly by using a partial name. 다른 오버 로드는 GetType 메서드 버전 번호를 포함 하는 어셈블리의 정규화 된 형식 이름이 필요 합니다.Other overloads of the GetType method require an assembly-qualified type name, which includes the version number.

형식 시스템의 대체 구현을의 서브 클래스를 반환 해야 할 수 있습니다 System.Type CLR에서 만들어지지 않은; 모든 형식에 다른 오버 로드에 의해 반환 되는 GetType 메서드는 런타임 형식입니다.Alternate implementations of the type system may need to return subclasses of System.Type that are not created by the CLR; all types that are returned by other overloads of the GetType method are runtime types.

사용 정보Usage Notes

이 메서드 오버 로드 및 연결 된 오버 로드를 구문 분석 typeName 어셈블리의 이름 및 형식 이름으로 한 다음 이름을 확인 합니다.This method overload and its associated overloads parse typeName into the name of a type and the name of an assembly, and then resolve the names. 어셈블리 이름 확인 형식 이름을 어셈블리의 컨텍스트에서 해결 해야 하기 때문에 형식 이름 확인 하기 전에 발생 합니다.Resolution of the assembly name occurs before resolution of the type name, because a type name must be resolved in the context of an assembly.

참고

어셈블리의 정규화 된 형식 이름에 대 한 개념을 잘 모르는 경우 참조는 AssemblyQualifiedName 속성입니다.If you are unfamiliar with the concept of assembly-qualified type names, see the AssemblyQualifiedName property.

경우 typeName 어셈블리의 정규화 된 이름이 아닙니다. 어셈블리 확인을 건너뜁니다.If typeName is not an assembly-qualified name, assembly resolution is skipped. Mscorlib.dll 또는 현재 실행 중인 어셈블리의 컨텍스트에서 정규화 되지 않은 형식 이름을 확인할 수 있습니다 또는 어셈블리를 선택적으로 제공할 수는 typeResolver 매개 변수입니다.Unqualified type names can be resolved in the context of Mscorlib.dll or the currently executing assembly, or you can optionally provide an assembly in the typeResolver parameter. 영향 포함 하거나 다른 종류의 이름 확인을 테이블로 표시 되는 어셈블리 이름을 생략 합니다 혼합 된 이름 확인 섹션입니다.The effects of including or omitting the assembly name for different kinds of name resolution are displayed as a table in the Mixed Name Resolution section.

일반적인 사용법 정보:General usage notes:

  • 메서드를 전달 하지 마세요 assemblyResolver 또는 typeResolver 알 수 없거나 신뢰할 수 없는 호출자를 합니다.Do not pass methods to assemblyResolver or typeResolver if they come from unknown or untrusted callers. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.Use only methods that you provide or that you are familiar with.

    주의

    알 수 없거나 신뢰할 수 없는 호출자의 메서드를 사용 하 여 악성 코드에 대 한 권한 상승 될 수 있습니다.Using methods from unknown or untrusted callers could result in elevation of privilege for malicious code.

  • 생략 하면는 assemblyResolver 및/또는 typeResolver 매개 변수, 값은 throwOnError 매개 변수는 기본 확인을 수행 하는 메서드에 전달 됩니다.If you omit the assemblyResolver and/or typeResolver parameters, the value of the throwOnError parameter is passed to the methods that perform the default resolution.

  • 경우 throwOnError 됩니다 true,이 메서드가 throw를 TypeLoadExceptiontypeResolver 반환 null, 및 FileNotFoundExceptionassemblyResolver 반환 null.If throwOnError is true, this method throws a TypeLoadException when typeResolver returns null, and a FileNotFoundException when assemblyResolver returns null.

  • 이 메서드에 의해 throw 된 예외를 catch 하지 않습니다 assemblyResolvertypeResolver입니다.This method does not catch exceptions thrown by assemblyResolver and typeResolver. 확인자 메서드에 의해 throw 되는 모든 예외에 대 한 담당 합니다.You are responsible for any exceptions that are thrown by the resolver methods.

어셈블리 확인Resolving Assemblies

합니다 assemblyResolver 메서드는 수신를 AssemblyName 개체에 포함 된 어셈블리 이름 문자열을 구문 분석 하 여 생성 되는 typeName합니다.The assemblyResolver method receives an AssemblyName object, which is produced by parsing the string assembly name that is included in typeName. 하는 경우 typeName 는 어셈블리 이름을 포함 하지 않는 assemblyResolver 가 호출 되지 않습니다 및 null 넘어갑니다 typeResolver합니다.If typeName does not contain an assembly name, assemblyResolver is not called and null is passed to typeResolver.

경우 assemblyResolver 제공 되는 표준 어셈블리가 아닌 어셈블리를 찾는 데 사용 됩니다 검색 합니다.If assemblyResolver is not supplied, standard assembly probing is used to locate the assembly. 경우 assemblyResolver 제공 되는 GetType 메서드는 표준 검색을 수행 하지 않으면 경우 확인 해야 프로그램 assemblyResolver 을 전달 하는 모든 어셈블리를 처리할 수 있습니다.If assemblyResolver is provided, the GetType method does not do standard probing; in that case you must ensure that your assemblyResolver can handle all the assemblies you pass to it.

합니다 assemblyResolver 메서드는 반환 해야 null 어셈블리를 확인할 수 없는 경우.The assemblyResolver method should return null if the assembly cannot be resolved. 경우 assemblyResolver 반환 null, typeResolver 가 호출 되지 않습니다 발생 추가로 처리할 필요가 없습니다; 또한 경우 throwOnError 됩니다 true, FileNotFoundException throw 됩니다.If assemblyResolver returns null, typeResolver is not called and no further processing occurs; additionally, if throwOnError is true, a FileNotFoundException is thrown.

경우는 AssemblyName 에 전달 된 assemblyResolver 이 부분 이름, 하나 이상의 파트 중 null합니다.If the AssemblyName that is passed to assemblyResolver is a partial name, one or more of its parts are null. 예를 들어 없는 버전이 있을 경우 합니다 Version 속성은 null합니다.For example, if it has no version, the Version property is null. 경우는 Version 속성을 CultureInfo 속성을 및 GetPublicKeyToken 메서드가 모두 반환 null만 어셈블리의 단순한 이름을 제공한 다음.If the Version property, the CultureInfo property, and the GetPublicKeyToken method all return null, then only the simple name of the assembly was supplied. assemblyResolver 메서드 사용 하거나 어셈블리 이름의 모든 부분을 무시할 수 있습니다.The assemblyResolver method can use or ignore all parts of the assembly name.

다른 어셈블리 해결 옵션의 효과 테이블로 표시 됩니다는 혼합 된 이름 확인 섹션을 간단 하 고 어셈블리의 정규화 된 형식 이름입니다.The effects of different assembly resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

형식 확인Resolving Types

하는 경우 typeName 는 어셈블리 이름을 지정 하지 않습니다 typeResolver 가 항상 호출 합니다.If typeName does not specify an assembly name, typeResolver is always called. 하는 경우 typeName 어셈블리 이름 지정 typeResolver 어셈블리 이름을 성공적으로 확인 하는 경우에 호출 됩니다.If typeName specifies an assembly name, typeResolver is called only when the assembly name is successfully resolved. 하는 경우 assemblyResolver 또는 표준 어셈블리 검색 반환 null, typeResolver 호출 되지 않습니다.If assemblyResolver or standard assembly probing returns null, typeResolver is not called.

typeResolver 메서드 3 개 인수를 받습니다.The typeResolver method receives three arguments:

  • 검색할 어셈블리 또는 null 경우 typeName 어셈블리 이름이 없습니다.The assembly to search or null if typeName does not contain an assembly name.

  • 단순한 이름 형식입니다.The simple name of the type. 중첩된 된 형식의 경우 가장 바깥쪽 포함 하는 형식입니다.In the case of a nested type, this is the outermost containing type. 제네릭 형식의 경우 제네릭 형식의 단순 이름입니다.In the case of a generic type, this is the simple name of the generic type.

  • 부울 값이 true 형식 이름의 대/소문자가 구분 되지 않을 경우.A Boolean value that is true if the case of type names is to be ignored.

이러한 인수를 사용 하는 방법을 결정 하는 구현 합니다.The implementation determines the way these arguments are used. 합니다 typeResolver 메서드는 반환 해야 null 형식을 확인할 수 없는 경우.The typeResolver method should return null if it cannot resolve the type. 경우 typeResolver 반환 nullthrowOnError 됩니다 true,이 오버 로드 GetType throw를 TypeLoadException입니다.If typeResolver returns null and throwOnError is true, this overload of GetType throws a TypeLoadException.

다른 형식 확인 옵션의 효과 테이블로 표시 됩니다는 혼합 된 이름 확인 섹션을 간단 하 고 어셈블리의 정규화 된 형식 이름입니다.The effects of different type resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

중첩된 형식 확인Resolving Nested Types

하는 경우 typeName 는 중첩 형식이 가장 바깥쪽의 이름만 포함 하는 형식 전달 됩니다 typeResolver합니다.If typeName is a nested type, only the name of the outermost containing type is passed to typeResolver. typeResolver 이 형식을 반환 합니다 GetNestedType 메서드 가장 안쪽의 중첩 된 형식이 확인 될 때까지 재귀적으로 호출 됩니다.When typeResolver returns this type, the GetNestedType method is called recursively until the innermost nested type has been resolved.

제네릭 형식 확인Resolving Generic Types

GetType 재귀적으로 호출 하 여 제네릭 형식을 확인 합니다. 먼저 제네릭 형식 자체를 확인 한 다음 해당 형식 인수를 확인 합니다.The GetType is called recursively to resolve generic types: First to resolve the generic type itself, and then to resolve its type arguments. 형식 인수 제네릭인 경우 GetType 그 형식 인수를 해결 하는 재귀적으로 호출 됩니다.If a type argument is generic, GetType is called recursively to resolve its type arguments, and so on.

조합 assemblyResolvertypeResolver 모든 수준의이 재귀를 해결할 수 제공 합니다.The combination of assemblyResolver and typeResolver that you provide must be capable of resolving all levels of this recursion. 예를 들어, 제공 하는 assemblyResolver 로드를 제어 하는 MyAssembly합니다.For example, suppose you supply an assemblyResolver that controls the loading of MyAssembly. 제네릭 형식을 확인 하려고 한다고 가정해 보겠습니다 Dictionary<string, MyType> (Dictionary(Of String, MyType) Visual basic에서).Suppose you want to resolve the generic type Dictionary<string, MyType> (Dictionary(Of String, MyType) in Visual Basic). 다음 제네릭 형식 이름을 전달할 수 있습니다.You might pass the following generic type name:

"System.Collections.Generic.Dictionary`2[System.String,[MyNamespace.MyType, MyAssembly]]"  

MyType 만 어셈블리의 정규화 된 유형 인수입니다.Notice that MyType is the only assembly-qualified type argument. 이름을 합니다 Dictionary<TKey,TValue>String 클래스 정규화 된 어셈블리는 없습니다.The names of the Dictionary<TKey,TValue> and String classes are not assembly-qualified. 프로그램 typeResolver 어셈블리로 하거나 처리할 수 있어야 또는 null이므로 받을 null 에 대 한 Dictionary<TKey,TValue>String합니다.Your typeResolver must be able handle either an assembly or null, because it will receive null for Dictionary<TKey,TValue> and String. 이런 경우의 오버 로드를 호출 하 여 처리할 수는 GetType 정규화 되지 않은 형식 이름을 모두 mscorlib.dll에서 때문에 문자열을 사용 하는 메서드:It can handle that case by calling an overload of the GetType method that takes a string, because both of the unqualified type names are in Mscorlib.dll:

Type t = Type.GetType(test,
                      (aName) => aName.Name == "MyAssembly" ? 
                          Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : null,
                      (assem, name, ignore) => assem == null ? 
                          Type.GetType(name, false, ignore) : 
                              assem.GetType(name, false, ignore)
                     ); 

assemblyResolver 없기 때문에 해당 형식 이름이 어셈블리의 정규화 된 사전 형식 및 문자열 형식에 대 한 메서드가 호출 되지 않습니다.The assemblyResolver method is not called for the dictionary type and the string type, because those type names are not assembly-qualified.

이제 대신 가정 System.String에 첫 번째 제네릭 인수 형식이 YourType에서 YourAssembly:Now suppose that instead of System.String, the first generic argument type is YourType, from YourAssembly:

"System.Collections.Generic.Dictionary`2[[YourNamespace.YourType, YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], [MyNamespace.MyType, MyAssembly]]"  

해결할 수 없는이 어셈블리 Mscorlib.dll 또는 현재 실행 중인 어셈블리 이므로 YourType 어셈블리의 정규화 된 이름이 없는 합니다.Because this assembly is neither Mscorlib.dll nor the currently executing assembly, you cannot resolve YourType without an assembly-qualified name. 때문에 assemblyResolve 됩니다 재귀적으로 호출 있어야이 경우를 처리 하도록 합니다.Because your assemblyResolve will be called recursively, it must be able to handle this case. 반환 하는 대신 null 이외의 어셈블리에 대 한 MyAssembly, 이제 제공 된 어셈블리를 로드 수행 AssemblyName 개체입니다.Instead of returning null for assemblies other than MyAssembly, it now performs an assembly load using the supplied AssemblyName object.

Type t2 = Type.GetType(test,
                       (aName) => aName.Name == "MyAssembly" ? 
                           Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : 
                           Assembly.Load(aName),
                       (assem, name, ignore) => assem == null ? 
                           Type.GetType(name, false, ignore) : 
                               assem.GetType(name, false, ignore), true
                      ); 

돌아가기 사용량 정보합니다.Back to Usage Notes.

특수 문자가 포함 된 형식 이름 확인Resolving Type Names with Special Characters

특정 문자 어셈블리의 정규화 된 이름에서 특별 한 의미를 갖습니다.Certain characters have special meanings in assembly-qualified names. 이러한 문자를 포함 하는 단순 형식 이름, 단순한 이름 어셈블리의 정규화 된 이름의 일부인 경우 문자 구문 분석 오류를 발생 합니다.If a simple type name contains these characters, the characters cause parsing errors when the simple name is part of an assembly-qualified name. 구문 분석 오류를 방지 하려면 이스케이프 처리 해야 백슬래시를 사용 하 여 특수 문자를 정규화 된 어셈블리 이름을 전달 하기 전에 GetType 메서드.To avoid the parsing errors, you must escape the special characters with a backslash before you can pass the assembly-qualified name to the GetType method. 예를 들어 형식 이름은 Strange]Type, 다음과 같은 이스케이프 문자가 대괄호 미리 추가 해야 합니다: Strange\]Type합니다.For example, if a type is named Strange]Type, the escape character must be added ahead of the square bracket as follows: Strange\]Type.

참고

이러한 특수 문자를 사용 하 여 이름을 Visual Basic 또는 C#에서 만들 수 없지만 동적 어셈블리 내보내기를 또는 MSIL (Microsoft intermediate language)을 사용 하 여 만들 수 있습니다.Names with such special characters cannot be created in Visual Basic or C#, but can be created by using Microsoft intermediate language (MSIL) or by emitting dynamic assemblies.

다음 표에서 형식 이름에 대 한 특수 문자를 보여 줍니다.The following table shows the special characters for type names.

문자Character 의미Meaning
, (쉼표), (comma) 어셈블리의 정규화 된 이름에 대 한 구분 기호입니다.Delimiter for assembly-qualified names.
[] (대괄호)[] (square brackets) 접미사 쌍을 나타내는 배열 형식입니다. 구분 기호 쌍을 제네릭 인수 목록 및 어셈블리의 정규화 된 이름을 포함합니다.As a suffix pair, indicates an array type; as a delimiter pair, encloses generic argument lists and assembly-qualified names.
& (앰퍼샌드)& (ampersand) 접미사로, 형식이 참조 형식 인지를 나타냅니다.As a suffix, indicates that a type is a reference type.
* (별표)* (asterisk) 를 접미사로 형식이 포인터 형식 인지를 나타냅니다.As a suffix, indicates that a type is a pointer type.
+ (더하기)+ (plus) 중첩 된 형식에 대 한 구분 기호입니다.Delimiter for nested types.
\ (백슬래시)\ (backslash) 이스케이프 문자입니다.Escape character.

와 같은 속성 AssemblyQualifiedName 올바르게 이스케이프 된 문자열 반환 합니다.Properties such as AssemblyQualifiedName return correctly escaped strings. 올바르게 이스케이프 된 문자열을 전달 해야 합니다는 GetType 메서드.You must pass correctly escaped strings to the GetType method. 차례로 합니다 GetType 메서드를 올바르게 이스케이프 이름을 전달 typeResolver 및 기본 형식 확인 방법입니다.In turn, the GetType method passes correctly escaped names to typeResolver and to the default type resolution methods. 이스케이프 되지 않은 이름에 이름을 비교 해야 하는 경우 typeResolver, 이스케이프 문자를 제거 해야 합니다.If you need to compare a name to an unescaped name in typeResolver, you must remove the escape characters.

돌아가기 사용량 정보합니다.Back to Usage Notes.

혼합된 이름 확인Mixed Name Resolution

다음 표에서 간의 상호 작용 assemblyResolver, typeResolver, 및의 형식 이름과 어셈블리의 모든 조합에 대 한 기본 이름 확인 typeName:The following table summarizes the interactions between assemblyResolver, typeResolver, and default name resolution, for all combinations of type name and assembly name in typeName:

콘텐츠 형식 이름Contents of type name 어셈블리 확인자 메서드Assembly resolver method 형식 확인 자가 메서드Type resolver method 결과Result
형식, 어셈블리type, assembly nullnull nullnull 호출에 해당 하는 Type.GetType(String, Boolean, Boolean) 메서드 오버 로드 합니다.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload.
형식, 어셈블리type, assembly 제공provided nullnull assemblyResolver 어셈블리를 반환 하거나 반환 null 어셈블리를 확인할 수 없는 경우.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. 어셈블리가 확인 되는 경우는 Assembly.GetType(String, Boolean, Boolean) 어셈블리에서 형식을 로드 하는 메서드 오버 로드 되 고, 그렇지 않으면 있습니다 형식을 확인 하지 않습니다.If the assembly is resolved, the Assembly.GetType(String, Boolean, Boolean) method overload is used to load the type from the assembly; otherwise, there is no attempt to resolve the type.
형식, 어셈블리type, assembly nullnull 제공provided 해당 어셈블리 이름을 변환 하는 AssemblyName 개체와 호출은 Assembly.Load(AssemblyName) 메서드 오버 로드 된 어셈블리를 가져오려고 합니다.Equivalent to converting the assembly name to an AssemblyName object and calling the Assembly.Load(AssemblyName) method overload to get the assembly. 에 전달한 어셈블리 해결 되 면 typeResolver이 고, 그렇지 않으면 typeResolver 호출 되지 않습니다 추가 시도가 형식을 확인 하 고 있습니다.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
형식, 어셈블리type, assembly 제공provided 제공provided assemblyResolver 어셈블리를 반환 하거나 반환 null 어셈블리를 확인할 수 없는 경우.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. 에 전달한 어셈블리 해결 되 면 typeResolver이 고, 그렇지 않으면 typeResolver 호출 되지 않습니다 추가 시도가 형식을 확인 하 고 있습니다.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
typetype null, 제공null, provided nullnull 호출에 해당 하는 Type.GetType(String, Boolean, Boolean) 메서드 오버 로드 합니다.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload. 어셈블리 이름, 제공 되지 않았으므로 Mscorlib.dll 및 현재 실행 중인 어셈블리가 검색 됩니다.Because the assembly name is not provided, only Mscorlib.dll and the currently executing assembly are searched. 경우 assemblyResolver 제공 무시 됩니다.If assemblyResolver is provided, it is ignored.
typetype null, 제공null, provided 제공provided typeResolver 호출 되 고 null 어셈블리에 전달 됩니다.typeResolver is called, and null is passed for the assembly. typeResolver 이 목적을 위해 로드 하는 어셈블리를 포함 하 여 모든 어셈블리에서 형식을 제공할 수 있습니다.typeResolver can provide a type from any assembly, including assemblies it loads for the purpose. 경우 assemblyResolver 제공 무시 됩니다.If assemblyResolver is provided, it is ignored.
어셈블리assembly null, 제공null, provided null, 제공null, provided FileLoadException throw 되는 어셈블리의 정규화 된 유형 이름 처럼 어셈블리 이름을 구문 분석 되기 때문입니다.A FileLoadException is thrown, because the assembly name is parsed as if it were an assembly-qualified type name. 이 인해 잘못 된 어셈블리 이름입니다.This results in an invalid assembly name.

뒤로 이동: 사용 정보, 어셈블리 확인, 형식 확인Back to: Usage Notes, Resolving Assemblies, Resolving Types.

적용 대상