Type.GetType 메서드

정의

지정된 형식을 나타내는 Type 개체를 가져옵니다.

오버로드

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

형식을 찾을 수 없는 경우 대/소문자를 구분하는 검색을 수행할지 여부 및 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

GetType()

현재 Type를 가져옵니다.

GetType(String)

대/소문자 구분 검색하여 지정된 이름의 Type을 가져옵니다.

GetType(String, Boolean)

대/소문자를 구분하여 검색하고 형식이 없으면 예외를 throw할지를 지정하여, 지정된 이름의 Type을 가져옵니다.

GetType(String, Boolean, Boolean)

대/소문자를 구분하여 검색할지 여부와 형식이 없으면 예외를 throw할지 여부를 지정하여, 지정된 이름의 Type을 가져옵니다.

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

어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

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

형식을 찾을 수 없는 경우 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

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

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

형식을 찾을 수 없는 경우 대/소문자를 구분하는 검색을 수행할지 여부 및 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

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

가져올 형식의 이름입니다. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다. 매개 변수가 assemblyResolver 제공되거나 표준 형식 확인이 사용되는 typeName 경우 형식이 현재 실행 중인 어셈블리 또는 mscorlib.dll/System.Private.CoreLib.dll 없는 한 어셈블리 정규화된 이름(참조 AssemblyQualifiedName)이어야 합니다. 이 경우 네임스페이스에서 정규화된 형식 이름을 제공하기에 충분합니다.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다. 어셈블리가 제공되지 않는 경우 이 메서드에서 어셈블리를 제공할 수 있습니다. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 ignoreCase의 값이 전달됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다. 또한 false 를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다. 예외 섹션을 참조하세요.

ignoreCase
Boolean

true에 대해 대/소문자를 구분하지 않는 검색을 수행하려는 경우 typeName이고, false에 대해 대/소문자를 구분하는 검색을 수행하려는 경우 typeName입니다.

반환

지정된 이름의 형식입니다. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다. 예외 섹션을 참조하세요.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

throwOnErrortrue 이고 형식을 찾을 수 없습니다.

또는

throwOnErrortrue 이고 typeName 이 포함된 탭 등의 잘못된 문자를 포함합니다.

또는

throwOnErrortrue 이고 typeName 이 빈 문자열입니다.

또는

throwOnErrortrue 이고 typeName 이 잘못된 크기를 가진 배열 형식을 나타냅니다.

또는

typeNameTypedReference 배열을 나타냅니다.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).

또는

throwOnErrortrue이고 typeName이 잘못된 구문(예: "MyType[,*,]")을 포함합니다.

또는

typeName 이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void 를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

또는

typeName이 잘못된 어셈블리 이름을 포함합니다.

또는

typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.

어셈블리 또는 해당 종속성 중 하나가 현재 로드된 런타임에 유효한 어셈블리가 아닙니다.

설명

이 API에 대한 자세한 내용은 Type.GetType에 대한 추가 API 설명을 참조하세요.

적용 대상

GetType()

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

현재 Type를 가져옵니다.

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

반환

현재 Type입니다.

구현

예외

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

추가 정보

적용 대상

GetType(String)

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

대/소문자 구분 검색하여 지정된 이름의 Type을 가져옵니다.

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

매개 변수

typeName
String

가져올 형식에 대한 어셈블리로 한정된 이름입니다. AssemblyQualifiedName을 참조하세요. 형식이 현재 실행 중인 어셈블리 또는 mscorlib.dll/System.Private.CoreLib.dll 있는 경우 네임스페이스로 정규화된 형식 이름을 제공하기에 충분합니다.

반환

지정된 이름의 형식이 있으면 이를 반환하고 그렇지 않으면 null을 반환합니다.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

typeName이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

typeName 는 잘못된 형식(예: 배열) TypedReference을 나타냅니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

참고: Windows 스토어 앱용 .NET 또는 이식 가능한 클래스 라이브러리에서 기본 클래스 예외 를 IOException대신 catch합니다.

어셈블리가 현재 로드된 런타임에 대해 유효하지 않습니다.

예제

다음 예제에서는 형식 System.Int32 을 검색하고 해당 형식 개체를 사용하여 의 System.Int32속성을 표시 FullName 합니다.

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
open System

try
    // Get the type of a specified class.
    let myType1 = Type.GetType "System.Int32"
    printfn $"The full name is {myType1.FullName}.\n"
with :? TypeLoadException as e ->
    printfn $"{e.GetType().Name}: Unable to load type System.Int32"

try
    // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
    let myType2 = Type.GetType("NoneSuch", true)
    printfn $"The full name is {myType2.FullName}."
with :? TypeLoadException as e ->
    printfn $"{e.GetType().Name}: Unable to load type NoneSuch"
// 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 다른 어셈블리의 AssemblyQualifiedName형식에 대한 개체를 가져올 수 있습니다. GetType 는 에 지정된 어셈블리를 로드합니다 typeName. 메서드를 사용하여 어셈블리를 Assembly.Load 로드한 다음 또는 Assembly.GetTypes 메서드를 Assembly.GetType 사용하여 개체를 가져올 Type 수도 있습니다. 형식이 컴파일 시간에 프로그램에 알려진 어셈블리에 있는 경우 C# 또는 GetType Visual Basic의 연산자에서 를 사용하는 typeof 것이 더 효율적입니다.

참고

찾을 수 없으면 typeName 메서드에 대한 호출은 를 GetType(String) 반환합니다 null. 예외를 throw하지 않습니다. 예외가 throw되는지 여부를 제어하려면 매개 변수가 있는 메서드의 GetType 오버로드를 throwOnError 호출합니다.

GetType 디스크에서 로드된 어셈블리에서만 작동합니다. 를 호출 GetType 하여 서비스를 사용하여 정의된 동적 어셈블리에 정의된 형식을 System.Reflection.Emit 조회하는 경우 일관되지 않은 동작이 발생할 수 있습니다. 동작은 동적 어셈블리가 영구적인지, 즉 열거형의 System.Reflection.Emit.AssemblyBuilderAccess 액세스 모드를 Save 사용하여 RunAndSave 만들어졌는지에 따라 달라집니다. 동적 어셈블리가 영구적이고 가 호출되기 전에 GetType 디스크에 기록된 경우 로더는 디스크에서 저장된 어셈블리를 찾아 해당 어셈블리를 로드하고 해당 어셈블리에서 형식을 검색합니다. 가 호출되었을 때 GetType 어셈블리가 디스크에 저장되지 않은 경우 메서드는 를 반환합니다 null. GetType 는 일시적인 동적 어셈블리를 이해하지 못합니다. 따라서 임시 동적 어셈블리에서 형식을 검색하기 위해 를 호출 GetType 하면 가 반환됩니다 null.

동적 모듈에서 를 사용 GetType 하려면 저장하기 전에 이벤트를 구독 AppDomain.AssemblyResolve 하고 를 호출 GetType 합니다. 그렇지 않으면 메모리에 어셈블리의 복사본 두 개를 가져옵니다.

다음 표에서는 형식을 반영할 때 메서드에서 반환되는 기본 클래스의 Get 멤버를 보여 줍니다.

멤버 형식 정적 비정적
생성자 아니요 아니요
필드 아니요 예. 필드는 항상 이름별 및 서명으로 숨깁니다.
이벤트 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
메서드 아니요 예. 메서드(가상 및 가상이 아닌 메서드)는 이름별 숨기기 또는 이름별 숨기기 및 서명일 수 있습니다.
중첩 형식 아니요 아니요
속성 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
  1. 이름별 숨기기 및 서명은 사용자 지정 한정자, 반환 형식, 매개 변수 형식, sentinels 및 관리되지 않는 호출 규칙을 포함하여 서명의 모든 부분을 고려합니다. 이진 비교입니다.

  2. 리플렉션의 경우 속성 및 이벤트는 이름별 숨기기 및 서명입니다. 기본 클래스에 get 및 set 접근자가 둘 다 있는 속성이 있지만 파생 클래스에 get 접근자만 있는 경우 파생 클래스 속성은 기본 클래스 속성을 숨기며 기본 클래스의 setter에 액세스할 수 없습니다.

  3. 사용자 지정 특성은 공통 형식 시스템의 일부가 아닙니다.

배열 또는 COM 형식은 사용 가능한 클래스의 테이블에 이미 로드되지 않은 경우 검색되지 않습니다.

typeName 는 네임스페이스로 정규화된 형식 이름 또는 어셈블리 이름 사양을 포함하는 어셈블리 정규화된 이름일 수 있습니다. AssemblyQualifiedName을 참조하세요.

네임스페이스를 포함하지만 어셈블리 이름은 포함하지 않는 경우 typeName 이 메서드는 호출하는 개체의 어셈블리만 검색하고 /System.Private.CoreLib.dll 순서대로 mscorlib.dll. typeName이 부분 또는 전체 어셈블리 이름으로 정규화된 경우 이 메서드는 지정된 어셈블리에서 검색합니다. 어셈블리에 강력한 이름이 있는 경우 전체 어셈블리 이름이 필요합니다.

속성은 AssemblyQualifiedName 중첩된 형식, 어셈블리 이름 및 제네릭 형식 인수를 포함하여 정규화된 형식 이름을 반환합니다. 공용 언어 런타임을 지원하는 모든 컴파일러에서는 중첩 클래스의 간단한 이름을 내보내고, 리플렉션은 다음 규칙에 따라 쿼리할 때 잘못된 이름을 생성합니다.

참고

프로세서 아키텍처는 어셈블리 ID의 일부이며 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들어 "ProcessorArchitecture=msil"입니다. 그러나 호환성을 위해 속성에서 반환된 AssemblyQualifiedName 문자열에는 포함되지 않습니다. 개체를 AssemblyName 만들고 메서드의 Load 적절한 오버로드에 전달하여 형식을 로드할 수도 있습니다. 그런 다음 메서드를 Assembly.GetType 사용하여 어셈블리에서 형식을 로드할 수 있습니다. AssemblyName.ProcessorArchitecture을 참조하세요.

구분 기호 의미
백슬래시(\) 이스케이프 문자입니다.
백틱(') 제네릭 형식 이름 끝에 있는 형식 매개 변수 수를 나타내는 하나 이상의 숫자 앞에 섰습니다.
대괄호([]) 생성된 제네릭 형식에 대한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록 내에서 어셈블리 정규화된 형식을 묶습니다.
쉼표(,) 어셈블리 이름 앞에 섰습니다.
마침표(.) 네임스페이스 식별자를 표시합니다.
더하기 기호(+) 중첩 클래스 앞에 섰습니다.

예를 들어 클래스의 정규화된 이름은 다음과 같을 수 있습니다.

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

네임스페이스가 TopNamespace.Sub+Namespace인 경우 문자열이 중첩 구분 기호로 해석되지 않도록 이스케이프 문자(\)가 있는 더하기 기호(+) 앞에 와야 합니다. 리플렉션은 다음과 같이 이 문자열을 내보낸다.

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

"++"는 "\+\+"가 되고 "\"는 "\\"가 됩니다.

이 정규화된 이름은 유지할 수 있으며 나중에 를 로드 Type하는 데 사용할 수 있습니다. 를 검색하고 로드 Type하려면 형식 이름만 사용하거나 어셈블리 정규화된 형식 이름과 함께 를 사용합니다 GetType . GetType 형식 이름을 사용하면 호출자의 어셈블리에서 를 찾은 다음 시스템 어셈블리에서 만 찾 Type 습니다. GetType 어셈블리 정규화된 형식 이름을 사용하여 모든 어셈블리에서 을 Type 찾습니다.

형식 이름에는 형식이 참조 형식, 포인터 형식 또는 배열 형식인지 여부와 같이 형식에 대한 추가 정보를 나타내는 후행 문자가 포함될 수 있습니다. 이러한 후행 문자 없이 형식 이름을 검색하려면 를 사용합니다 t.GetElementType().ToString(). 여기서 t 는 형식입니다.

공간은 어셈블리 이름을 제외한 모든 형식 이름 구성 요소에서 관련이 있습니다. 어셈블리 이름에서 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시됩니다.

제네릭 형식의 이름은 백틱(') 뒤에 제네릭 형식 인수의 수를 나타내는 숫자로 끝납니다. 이 이름 맨글링의 목적은 컴파일러가 이름이 같지만 형식 매개 변수 수가 다른 제네릭 형식을 동일한 scope 지원할 수 있도록 하는 것입니다. 예를 들어 리플렉션은 제네릭 메서드 Tuple(Of T) 와 Visual Basic 또는 Tuple<T0, T1>Tuple<T> Visual C#의 잘못된 이름과 Tuple`1 를 반환합니다.Tuple`2Tuple(Of T0, T1)

제네릭 형식의 경우 형식 인수 목록은 대괄호로 묶고 형식 인수는 쉼표로 구분됩니다. 예를 들어 제네릭 Dictionary<TKey,TValue> 에는 두 가지 형식 매개 변수가 있습니다. Dictionary<TKey,TValue> 형식 String 의 키가 있는 의 MyType 은 다음과 같이 표시될 수 있습니다.

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

형식 인수 목록 내에서 어셈블리 정규화된 형식을 지정하려면 대괄호 안에 어셈블리 정규화된 형식을 묶습니다. 그렇지 않으면 어셈블리 정규화된 이름의 부분을 구분하는 쉼표가 추가 형식 인수를 구분하는 것으로 해석됩니다. 예를 들어 Dictionary<TKey,TValue> 형식StringMyType 키가 있는 fromMyAssembly.dll 다음과 같이 지정할 수 있습니다.

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

참고

형식 매개 변수 목록 내에 표시되는 경우에만 어셈블리 정규화된 형식을 대괄호로 묶을 수 있습니다. 형식 매개 변수 목록에서 정규화된 형식 및 정규화되지 않은 형식에 대한 어셈블리 검색 규칙은 정규화되고 정규화되지 않은 비일반 형식에 대한 규칙과 동일합니다.

Nullable 형식은 제네릭 형식의 특수한 경우입니다. 예를 들어 nullable Int32 은 "System.Nullable'1[System.Int32]" 문자열로 표시됩니다.

참고

C#, C++및 Visual Basic에서는 형식 연산자를 사용하여 nullable 형식을 가져올 수도 있습니다. 예를 들어 nullable Boolean 형식은 C#, C++, Nullable<Boolean>::typeid Visual Basic에서 에서 GetType(Nullable(Of Boolean)) 반환 typeof(Nullable<bool>) 됩니다.

다음 표에서는 다양한 형식에 사용할 GetType 구문을 보여줍니다.

가져오기 Windows Server Update Services와 함께
nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType*")
에 대한 포인터에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType**")
에 대한 관리되는 포인터 또는 참조 MyType Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.
부모 클래스 및 중첩 클래스 Type.GetType("MyParentClass+MyNestedClass")
하한이 0인 1차원 배열 Type.GetType("MyType[]")
알 수 없는 하한이 있는 1차원 배열 Type.GetType("MyType[*]")
n차원 배열 대괄호 안의 쉼표(,)는 총 n-1번입니다. 예를 들어 는 System.Object[,,] 3차원 배열을 Object 나타냅니다.
1차원 배열의 배열 Type.GetType("MyType[][]")
알 수 없는 하한이 있는 사각형 2차원 배열 Type.GetType("MyType[,]")
하나의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 개의 어셈블리 정규화된 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리 정규화된 형식 인수가 있는 어셈블리 정규화된 제네릭 형식 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
형식 인수가 두 개의 형식 인수가 있는 제네릭 형식인 제네릭 형식 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

적용 대상

GetType(String, Boolean)

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

대/소문자를 구분하여 검색하고 형식이 없으면 예외를 throw할지를 지정하여, 지정된 이름의 Type을 가져옵니다.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError);
public static Type GetType (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

가져올 형식에 대한 어셈블리로 한정된 이름입니다. AssemblyQualifiedName을 참조하세요. 형식이 현재 실행 중인 어셈블리에 있거나 /System.Private.CoreLib.dll mscorlib.dll경우 네임스페이스로 정규화된 형식 이름을 제공하는 것으로 충분합니다.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다. 또한 false 를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다. 예외 섹션을 참조하세요.

반환

지정된 이름의 형식입니다. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다. 예외 섹션을 참조하세요.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

throwOnErrortrue 이고 형식을 찾을 수 없습니다.

또는

throwOnErrortrue 이고 typeName 이 포함된 탭 등의 잘못된 문자를 포함합니다.

또는

throwOnErrortrue 이고 typeName 이 빈 문자열입니다.

또는

throwOnErrortrue 이고 typeName 이 잘못된 크기를 가진 배열 형식을 나타냅니다.

또는

typeNameTypedReference 배열을 나타냅니다.

throwOnErrortrue 이고 typeName 이 잘못된 구문을 포함합니다. 예를 들어 "MyType[,*,]"입니다.

또는

typeName 이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void 를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

참고: Windows 스토어 앱 또는 이식 가능한 클래스 라이브러리용 .NET에서 기본 클래스 예외 를 IOException대신 catch합니다.

어셈블리 또는 해당 종속성 중 하나가 현재 로드된 런타임에 대해 유효하지 않습니다.

예제

다음 예제에서는 형식 System.Int32 을 검색하고 해당 형식 개체를 사용하여 의 System.Int32속성을 표시 FullName 합니다. 형식 개체가 존재하지 않는 어셈블리를 참조하는 경우 이 예제에서는 예외를 throw합니다.

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
open System

try
    // Get the type of a specified class.
    let myType1 = Type.GetType "System.Int32"
    printfn $"The full name is {myType1.FullName}.\n"
with :? TypeLoadException as e ->
    printfn $"{e.GetType().Name}: Unable to load type System.Int32"

try
    // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
    let myType2 = Type.GetType("NoneSuch", true)
    printfn $"The full name is {myType2.FullName}."
with :? TypeLoadException as e ->
    printfn $"{e.GetType().Name}: Unable to load type NoneSuch"
// 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

설명

메서드를 GetType 사용하여 에서 가져올 수 있는 어셈블리 정규화된 이름을 알고 있는 경우 다른 어셈블리의 AssemblyQualifiedName형식에 대한 개체를 가져올 Type 수 있습니다. GetType 는 에 typeName지정된 어셈블리를 로드합니다. 메서드를 사용하여 어셈블리를 로드한 Assembly.Load 다음 또는 Assembly.GetTypes 메서드를 Assembly.GetType 사용하여 개체를 가져올 Type 수도 있습니다. 형식이 컴파일 시간에 프로그램에 알려진 어셈블리에 있는 경우 C# 또는 GetType Visual Basic의 연산자에서 를 사용하는 typeof 것이 더 효율적입니다.

GetType 는 디스크에서 로드된 어셈블리에서만 작동합니다. 를 호출 GetType 하여 서비스를 사용하여 정의된 동적 어셈블리에 정의된 형식을 System.Reflection.Emit 조회하는 경우 일관되지 않은 동작이 발생할 수 있습니다. 동작은 동적 어셈블리가 영구적인지, 즉 열거형의 System.Reflection.Emit.AssemblyBuilderAccess 또는 Save 액세스 모드를 사용하여 RunAndSave 만들어졌는지에 따라 달라집니다. 동적 어셈블리가 영구적이고 가 호출되기 전에 GetType 디스크에 기록된 경우 로더는 디스크에서 저장된 어셈블리를 찾아 해당 어셈블리를 로드하고 해당 어셈블리에서 형식을 검색합니다. 가 호출되었을 때 GetType 어셈블리가 디스크에 저장되지 않은 경우 메서드는 를 반환합니다 null. GetType 는 일시적인 동적 어셈블리를 이해하지 못합니다. 따라서 임시 동적 어셈블리에서 형식을 검색하기 위해 를 호출 GetType 하면 가 반환됩니다 null.

동적 모듈에서 를 사용 GetType 하려면 저장하기 전에 이벤트를 구독 AppDomain.AssemblyResolve 하고 를 호출 GetType 합니다. 그렇지 않으면 메모리에 어셈블리의 복사본 두 개를 가져옵니다.

매개 변수는 throwOnError 형식을 찾을 수 없을 때 발생하는 상황을 지정하고 예외 섹션에 설명된 대로 다른 특정 예외 조건도 표시하지 않습니다. 값에 관계없이 일부 예외가 throwOnErrorthrow됩니다. 예를 들어 형식을 찾았지만 로드 TypeLoadException 할 수 없는 경우 가 인 경우에도 throwOnErrorfalse이 throw됩니다.

다음 표에서는 형식을 반영할 때 메서드에서 반환되는 기본 클래스의 Get 멤버를 보여 줍니다.

멤버 형식 정적 비정적
생성자 아니요 아니요
필드 아니요 예. 필드는 항상 이름별 및 서명으로 숨깁니다.
이벤트 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
메서드 아니요 예. 메서드(가상 및 가상이 아닌 메서드)는 이름별 숨기기 또는 이름별 숨기기 및 서명일 수 있습니다.
중첩 형식 아니요 아니요
속성 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
  1. 이름별 숨기기 및 서명은 사용자 지정 한정자, 반환 형식, 매개 변수 형식, sentinels 및 관리되지 않는 호출 규칙을 포함하여 서명의 모든 부분을 고려합니다. 이진 비교입니다.

  2. 리플렉션의 경우 속성 및 이벤트는 이름별 숨기기 및 서명입니다. 기본 클래스에 get 및 set 접근자가 둘 다 있는 속성이 있지만 파생 클래스에 get 접근자만 있는 경우 파생 클래스 속성은 기본 클래스 속성을 숨기며 기본 클래스의 setter에 액세스할 수 없습니다.

  3. 사용자 지정 특성은 공통 형식 시스템의 일부가 아닙니다.

배열 또는 COM 형식은 사용 가능한 클래스의 테이블에 이미 로드되지 않은 경우 검색되지 않습니다.

typeName 는 네임스페이스로 정규화된 형식 이름 또는 어셈블리 이름 사양을 포함하는 어셈블리 정규화된 이름일 수 있습니다. AssemblyQualifiedName을 참조하세요.

네임스페이스를 포함하지만 어셈블리 이름은 포함하지 않는 경우 typeName 이 메서드는 호출하는 개체의 어셈블리만 검색하고 /System.Private.CoreLib.dll 순서대로 mscorlib.dll. typeName이 부분 또는 전체 어셈블리 이름으로 정규화된 경우 이 메서드는 지정된 어셈블리에서 검색합니다. 어셈블리에 강력한 이름이 있는 경우 전체 어셈블리 이름이 필요합니다.

속성은 AssemblyQualifiedName 중첩된 형식, 어셈블리 이름 및 제네릭 인수를 포함하여 정규화된 형식 이름을 반환합니다. 공용 언어 런타임을 지원하는 모든 컴파일러에서는 중첩 클래스의 간단한 이름을 내보내고, 리플렉션은 다음 규칙에 따라 쿼리할 때 잘못된 이름을 생성합니다.

참고

프로세서 아키텍처는 어셈블리 ID의 일부이며 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들어 "ProcessorArchitecture=msil"입니다. 그러나 호환성을 위해 속성에서 반환된 AssemblyQualifiedName 문자열에는 포함되지 않습니다. 개체를 AssemblyName 만들고 메서드의 Load 적절한 오버로드에 전달하여 형식을 로드할 수도 있습니다. 그런 다음 메서드를 Assembly.GetType 사용하여 어셈블리에서 형식을 로드할 수 있습니다. AssemblyName.ProcessorArchitecture을 참조하세요.

구분 기호 의미
백슬래시(\) 이스케이프 문자입니다.
백틱(') 제네릭 형식 이름 끝에 있는 형식 매개 변수 수를 나타내는 하나 이상의 숫자 앞에 섰습니다.
대괄호([]) 생성된 제네릭 형식에 대한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록 내에서 어셈블리 정규화된 형식을 묶습니다.
쉼표(,) 어셈블리 이름 앞에 섰습니다.
마침표(.) 네임스페이스 식별자를 표시합니다.
더하기 기호(+) 중첩 클래스 앞에 섰습니다.

예를 들어 클래스의 정규화된 이름은 다음과 같을 수 있습니다.

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

네임스페이스가 TopNamespace.Sub+Namespace인 경우 문자열이 중첩 구분 기호로 해석되지 않도록 이스케이프 문자(\)가 있는 더하기 기호(+) 앞에 와야 합니다. 리플렉션은 다음과 같이 이 문자열을 내보낸다.

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

"++"는 "\+\+"가 되고 "\"는 "\\"가 됩니다.

이 정규화된 이름은 유지할 수 있으며 나중에 를 로드 Type하는 데 사용할 수 있습니다. 를 검색하고 로드 Type하려면 형식 이름만 사용하거나 어셈블리 정규화된 형식 이름과 함께 를 사용합니다 GetType . GetType 형식 이름을 사용하면 호출자의 어셈블리에서 를 찾은 다음 시스템 어셈블리에서 만 찾 Type 습니다. GetType 어셈블리 정규화된 형식 이름을 사용하여 모든 어셈블리에서 을 Type 찾습니다.

형식 이름에는 형식이 참조 형식, 포인터 형식 또는 배열 형식인지 여부와 같이 형식에 대한 추가 정보를 나타내는 후행 문자가 포함될 수 있습니다. 이러한 후행 문자 없이 형식 이름을 검색하려면 를 사용합니다 t.GetElementType().ToString(). 여기서 t 는 형식입니다.

공간은 어셈블리 이름을 제외한 모든 형식 이름 구성 요소에서 관련이 있습니다. 어셈블리 이름에서 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시됩니다.

제네릭 형식의 이름은 백틱(') 뒤에 제네릭 형식 인수의 수를 나타내는 숫자로 끝납니다. 이 이름 맨글링의 목적은 컴파일러가 이름이 같지만 형식 매개 변수 수가 다른 제네릭 형식을 동일한 scope 지원할 수 있도록 하는 것입니다. 예를 들어 리플렉션은 제네릭 메서드 Tuple(Of T) 와 Visual Basic 또는 Tuple<T0, T1>Tuple<T> Visual C#의 잘못된 이름과 Tuple`1 를 반환합니다.Tuple`2Tuple(Of T0, T1)

제네릭 형식의 경우 형식 인수 목록은 대괄호로 묶고 형식 인수는 쉼표로 구분됩니다. 예를 들어 제네릭 Dictionary<TKey,TValue> 에는 두 가지 형식 매개 변수가 있습니다. Dictionary<TKey,TValue> 형식 String 의 키가 있는 의 MyType 은 다음과 같이 표시될 수 있습니다.

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

형식 인수 목록 내에서 어셈블리 정규화된 형식을 지정하려면 대괄호 안에 어셈블리 정규화된 형식을 묶습니다. 그렇지 않으면 어셈블리 정규화된 이름의 부분을 구분하는 쉼표가 추가 형식 인수를 구분하는 것으로 해석됩니다. 예를 들어 Dictionary<TKey,TValue> 형식StringMyType 키가 있는 의 MyAssembly.dll 다음과 같이 지정할 수 있습니다.

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

참고

형식 매개 변수 목록 내에 표시되는 경우에만 어셈블리 정규화된 형식을 대괄호로 묶을 수 있습니다. 형식 매개 변수 목록에서 정규화된 형식 및 정규화되지 않은 형식에 대한 어셈블리 검색 규칙은 정규화되고 정규화되지 않은 비일반 형식에 대한 규칙과 동일합니다.

Nullable 형식은 제네릭 형식의 특수한 경우입니다. 예를 들어 nullable Int32 은 "System.Nullable'1[System.Int32]" 문자열로 표시됩니다.

참고

C#, C++및 Visual Basic에서는 형식 연산자를 사용하여 nullable 형식을 가져올 수도 있습니다. 예를 들어 nullable Boolean 형식은 C#, C++, Nullable<Boolean>::typeid Visual Basic에서 에서 GetType(Nullable(Of Boolean)) 반환 typeof(Nullable<bool>) 됩니다.

다음 표에서는 다양한 형식에 사용할 GetType 구문을 보여줍니다.

가져오기 Windows Server Update Services와 함께
nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType*")
에 대한 포인터에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType**")
에 대한 관리되는 포인터 또는 참조 MyType Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.
부모 클래스 및 중첩 클래스 Type.GetType("MyParentClass+MyNestedClass")
하한이 0인 1차원 배열 Type.GetType("MyArray[]")
알 수 없는 하한이 있는 1차원 배열 Type.GetType("MyArray[*]")
n차원 배열 대괄호 안의 쉼표(,)는 총 n-1번입니다. 예를 들어 는 System.Object[,,] 3차원 배열을 Object 나타냅니다.
2차원 배열의 배열 Type.GetType("MyArray[][]")
알 수 없는 하한이 있는 사각형 2차원 배열 Type.GetType("MyArray[,]")
하나의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 개의 어셈블리 정규화된 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리 정규화된 형식 인수가 있는 어셈블리 정규화된 제네릭 형식 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
형식 인수가 두 개의 형식 인수가 있는 제네릭 형식인 제네릭 형식 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

적용 대상

GetType(String, Boolean, Boolean)

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

대/소문자를 구분하여 검색할지 여부와 형식이 없으면 예외를 throw할지 여부를 지정하여, 지정된 이름의 Type을 가져옵니다.

public:
 static Type ^ GetType(System::String ^ typeName, bool throwOnError, bool ignoreCase);
public static Type GetType (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

가져올 형식에 대한 어셈블리로 한정된 이름입니다. AssemblyQualifiedName을 참조하세요. 형식이 현재 실행 중인 어셈블리에 있거나 /System.Private.CoreLib.dll mscorlib.dll경우 네임스페이스로 정규화된 형식 이름을 제공하는 것으로 충분합니다.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다. 또한 false 를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다. 예외 섹션을 참조하세요.

ignoreCase
Boolean

true에 대해 대/소문자를 구분하지 않는 검색을 수행하려는 경우 typeName이고, false에 대해 대/소문자를 구분하는 검색을 수행하려는 경우 typeName입니다.

반환

지정된 이름의 형식입니다. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다. 예외 섹션을 참조하세요.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

throwOnErrortrue 이고 형식을 찾을 수 없습니다.

또는

throwOnErrortrue 이고 typeName 이 포함된 탭 등의 잘못된 문자를 포함합니다.

또는

throwOnErrortrue 이고 typeName 이 빈 문자열입니다.

또는

throwOnErrortrue 이고 typeName 이 잘못된 크기를 가진 배열 형식을 나타냅니다.

또는

typeNameTypedReference 배열을 나타냅니다.

throwOnErrortrue 이고 typeName 이 잘못된 구문을 포함합니다. 예를 들어 "MyType[,*,]"입니다.

또는

typeName 이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void 를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

어셈블리가 현재 로드된 런타임에 유효하지 않습니다.

설명

메서드를 GetType 사용하여 에서 가져올 수 있는 어셈블리 정규화된 이름을 알고 있는 경우 다른 어셈블리의 AssemblyQualifiedName형식에 대한 개체를 가져올 Type 수 있습니다. GetType 는 에 typeName지정된 어셈블리를 로드합니다. 메서드를 사용하여 어셈블리를 로드한 Assembly.Load 다음 또는 Assembly.GetTypes 메서드를 Assembly.GetType 사용하여 개체를 가져올 Type 수도 있습니다. 형식이 컴파일 시간에 프로그램에 알려진 어셈블리에 있는 경우 C# 또는 GetType Visual Basic의 연산자에서 를 사용하는 typeof 것이 더 효율적입니다.

GetType 는 디스크에서 로드된 어셈블리에서만 작동합니다. 를 호출 GetType 하여 서비스를 사용하여 정의된 동적 어셈블리에 정의된 형식을 System.Reflection.Emit 조회하는 경우 일관되지 않은 동작이 발생할 수 있습니다. 동작은 동적 어셈블리가 영구적인지, 즉 열거형의 System.Reflection.Emit.AssemblyBuilderAccess 또는 Save 액세스 모드를 사용하여 RunAndSave 만들어졌는지에 따라 달라집니다. 동적 어셈블리가 영구적이고 가 호출되기 전에 GetType 디스크에 기록된 경우 로더는 디스크에서 저장된 어셈블리를 찾아 해당 어셈블리를 로드하고 해당 어셈블리에서 형식을 검색합니다. 가 호출되었을 때 GetType 어셈블리가 디스크에 저장되지 않은 경우 메서드는 를 반환합니다 null. GetType 는 일시적인 동적 어셈블리를 이해하지 못합니다. 따라서 임시 동적 어셈블리에서 형식을 검색하기 위해 를 호출 GetType 하면 가 반환됩니다 null.

동적 모듈에서 를 사용 GetType 하려면 저장하기 전에 이벤트를 구독 AppDomain.AssemblyResolve 하고 를 호출 GetType 합니다. 그렇지 않으면 메모리에 어셈블리의 복사본 두 개를 가져옵니다.

매개 변수는 throwOnError 형식을 찾을 수 없을 때 발생하는 상황을 지정하고 예외 섹션에 설명된 대로 다른 특정 예외 조건도 표시하지 않습니다. 값에 관계없이 일부 예외가 throwOnErrorthrow됩니다. 예를 들어 형식을 찾았지만 로드 TypeLoadException 할 수 없는 경우 가 인 경우에도 throwOnErrorfalse이 throw됩니다.

다음 표에서는 형식을 반영할 때 메서드에서 반환되는 기본 클래스의 Get 멤버를 보여 줍니다.

멤버 형식 정적 비정적
생성자 아니요 아니요
필드 아니요 예. 필드는 항상 이름별 및 서명으로 숨깁니다.
이벤트 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
메서드 아니요 예. 메서드(가상 및 가상이 아닌 메서드)는 이름별 숨기기 또는 이름별 숨기기 및 서명일 수 있습니다.
중첩 형식 아니요 아니요
속성 해당 없음 일반적인 형식 시스템 규칙은 상속이 속성을 구현하는 메서드의 상속과 동일하다는 것입니다. 리플렉션은 속성을 hide-by-name-and-signature으로 처리합니다. 아래의 참고 2를 참조하세요.
  1. 이름별 숨기기 및 서명은 사용자 지정 한정자, 반환 형식, 매개 변수 형식, sentinels 및 관리되지 않는 호출 규칙을 포함하여 서명의 모든 부분을 고려합니다. 이진 비교입니다.

  2. 리플렉션의 경우 속성 및 이벤트는 이름별 숨기기 및 서명입니다. 기본 클래스에 get 및 set 접근자가 둘 다 있는 속성이 있지만 파생 클래스에 get 접근자만 있는 경우 파생 클래스 속성은 기본 클래스 속성을 숨기며 기본 클래스의 setter에 액세스할 수 없습니다.

  3. 사용자 지정 특성은 공통 형식 시스템의 일부가 아닙니다.

배열 또는 COM 형식은 사용 가능한 클래스의 테이블에 이미 로드되지 않은 경우 검색되지 않습니다.

typeName 는 네임스페이스로 정규화된 형식 이름 또는 어셈블리 이름 사양을 포함하는 어셈블리 정규화된 이름일 수 있습니다. AssemblyQualifiedName을 참조하세요.

네임스페이스를 포함하지만 어셈블리 이름은 포함하지 않는 경우 typeName 이 메서드는 호출하는 개체의 어셈블리만 검색하고 /System.Private.CoreLib.dll 순서대로 mscorlib.dll. typeName이 부분 또는 전체 어셈블리 이름으로 정규화된 경우 이 메서드는 지정된 어셈블리에서 검색합니다. 어셈블리에 강력한 이름이 있는 경우 전체 어셈블리 이름이 필요합니다.

속성은 AssemblyQualifiedName 중첩된 형식, 어셈블리 이름 및 형식 인수를 포함하여 정규화된 형식 이름을 반환합니다. 공용 언어 런타임을 지원하는 모든 컴파일러에서는 중첩 클래스의 간단한 이름을 내보내고, 리플렉션은 다음 규칙에 따라 쿼리할 때 잘못된 이름을 생성합니다.

참고

프로세서 아키텍처는 어셈블리 ID의 일부이며 어셈블리 이름 문자열의 일부로 지정할 수 있습니다. 예를 들어 "ProcessorArchitecture=msil"입니다. 그러나 호환성을 위해 속성에서 반환된 AssemblyQualifiedName 문자열에는 포함되지 않습니다. 개체를 AssemblyName 만들고 메서드의 Load 적절한 오버로드에 전달하여 형식을 로드할 수도 있습니다. 그런 다음 메서드를 Assembly.GetType 사용하여 어셈블리에서 형식을 로드할 수 있습니다. AssemblyName.ProcessorArchitecture을 참조하세요.

구분 기호 의미
백슬래시(\) 이스케이프 문자입니다.
백틱(') 제네릭 형식 이름 끝에 있는 형식 매개 변수 수를 나타내는 하나 이상의 숫자 앞에 섰습니다.
대괄호([]) 생성된 제네릭 형식에 대한 제네릭 형식 인수 목록을 묶습니다. 형식 인수 목록 내에서 어셈블리 정규화된 형식을 묶습니다.
쉼표(,) 어셈블리 이름 앞에 섰습니다.
마침표(.) 네임스페이스 식별자를 표시합니다.
더하기 기호(+) 중첩 클래스 앞에 섰습니다.

예를 들어 클래스의 정규화된 이름은 다음과 같을 수 있습니다.

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

네임스페이스가 TopNamespace.Sub+Namespace인 경우 문자열이 중첩 구분 기호로 해석되지 않도록 이스케이프 문자(\)가 있는 더하기 기호(+) 앞에 와야 합니다. 리플렉션은 다음과 같이 이 문자열을 내보낸다.

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

"++"는 "\+\+"가 되고 "\"는 "\\"가 됩니다.

이 정규화된 이름은 유지할 수 있으며 나중에 를 로드 Type하는 데 사용할 수 있습니다. 를 검색하고 로드 Type하려면 형식 이름만 사용하거나 어셈블리 정규화된 형식 이름과 함께 를 사용합니다 GetType . GetType 형식 이름을 사용하면 호출자의 어셈블리에서 를 찾은 다음 시스템 어셈블리에서 만 찾 Type 습니다. GetType 어셈블리 정규화된 형식 이름을 사용하여 모든 어셈블리에서 을 Type 찾습니다.

형식 이름에는 형식이 참조 형식, 포인터 형식 또는 배열 형식인지 여부와 같이 형식에 대한 추가 정보를 나타내는 후행 문자가 포함될 수 있습니다. 이러한 후행 문자 없이 형식 이름을 검색하려면 를 사용합니다 t.GetElementType().ToString(). 여기서 t 는 형식입니다.

공간은 어셈블리 이름을 제외한 모든 형식 이름 구성 요소에서 관련이 있습니다. 어셈블리 이름에서 ',' 구분 기호 앞의 공백은 관련이 있지만 ',' 구분 기호 뒤의 공백은 무시됩니다.

제네릭 형식의 이름은 백틱(') 뒤에 제네릭 형식 인수의 수를 나타내는 숫자로 끝납니다. 이 이름 맨글링의 목적은 컴파일러가 이름이 같지만 형식 매개 변수 수가 다른 제네릭 형식을 동일한 scope 지원할 수 있도록 하는 것입니다. 예를 들어 리플렉션은 제네릭 메서드 Tuple(Of T) 와 Visual Basic 또는 Tuple<T0, T1>Tuple<T> Visual C#의 잘못된 이름과 Tuple`1 를 반환합니다.Tuple`2Tuple(Of T0, T1)

제네릭 형식의 경우 형식 인수 목록은 대괄호로 묶고 형식 인수는 쉼표로 구분됩니다. 예를 들어 제네릭 Dictionary<TKey,TValue> 에는 두 가지 형식 매개 변수가 있습니다. Dictionary<TKey,TValue> 형식 String 의 키가 있는 의 MyType 은 다음과 같이 표시될 수 있습니다.

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

형식 인수 목록 내에서 어셈블리 정규화된 형식을 지정하려면 대괄호 안에 어셈블리 정규화된 형식을 묶습니다. 그렇지 않으면 어셈블리 정규화된 이름의 부분을 구분하는 쉼표가 추가 형식 인수를 구분하는 것으로 해석됩니다. 예를 들어 Dictionary<TKey,TValue> 형식StringMyType 키가 있는 의 MyAssembly.dll 다음과 같이 지정할 수 있습니다.

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

참고

형식 매개 변수 목록 내에 표시되는 경우에만 어셈블리 정규화된 형식을 대괄호로 묶을 수 있습니다. 형식 매개 변수 목록에서 정규화된 형식 및 정규화되지 않은 형식에 대한 어셈블리 검색 규칙은 정규화되고 정규화되지 않은 비일반 형식에 대한 규칙과 동일합니다.

Nullable 형식은 제네릭 형식의 특수한 경우입니다. 예를 들어 nullable Int32 은 "System.Nullable'1[System.Int32]" 문자열로 표시됩니다.

참고

C#, C++및 Visual Basic에서는 형식 연산자를 사용하여 nullable 형식을 가져올 수도 있습니다. 예를 들어 nullable Boolean 형식은 C#, C++, Nullable<Boolean>::typeid Visual Basic에서 에서 GetType(Nullable(Of Boolean)) 반환 typeof(Nullable<bool>) 됩니다.

다음 표에서는 다양한 형식에 사용할 GetType 구문을 보여줍니다.

가져오기 Windows Server Update Services와 함께
nullable Int32 Type.GetType("System.Nullable`1[System.Int32]")
에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType*")
에 대한 포인터에 대한 관리되지 않는 포인터 MyType Type.GetType("MyType**")
에 대한 관리되는 포인터 또는 참조 MyType Type.GetType("MyType&"). 포인터와 달리 참조는 한 수준으로 제한됩니다.
부모 클래스 및 중첩 클래스 Type.GetType("MyParentClass+MyNestedClass")
하한이 0인 1차원 배열 Type.GetType("MyArray[]")
알 수 없는 하한이 있는 1차원 배열 Type.GetType("MyArray[*]")
n차원 배열 대괄호 안의 쉼표(,)는 총 n-1번입니다. 예를 들어 는 System.Object[,,] 3차원 배열을 Object 나타냅니다.
2차원 배열의 배열 Type.GetType("MyArray[][]")
알 수 없는 하한이 있는 사각형 2차원 배열 Type.GetType("MyArray[,]")
하나의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`1[MyType]")
두 개의 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[MyType,AnotherType]")
두 개의 어셈블리 정규화된 형식 인수가 있는 제네릭 형식 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
어셈블리 정규화된 형식 인수가 있는 어셈블리 정규화된 제네릭 형식 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
형식 인수가 두 개의 형식 인수가 있는 제네릭 형식인 제네릭 형식 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

추가 정보

적용 대상

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

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

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

가져올 형식의 이름입니다. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다. 매개 변수가 assemblyResolver 제공되거나 표준 형식 확인이 사용되는 typeName 경우 형식이 현재 실행 중인 어셈블리 또는 mscorlib.dll/System.Private.CoreLib.dll 있지 않으면 어셈블리 정규화된 이름(참조 AssemblyQualifiedName)이어야 합니다. 이 경우 네임스페이스에서 정규화된 형식 이름을 제공하기에 충분합니다.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다. 어셈블리가 제공되지 않는 경우 typeResolver 메서드에서 어셈블리를 제공할 수 있습니다. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 false가 전달됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요.

반환

지정된 이름을 가진 형식이거나, 형식이 없으면 null입니다.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).

또는

typeName 이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void 를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

typeName 는 잘못된 형식(예: 의 TypedReference배열)을 나타냅니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

또는

typeName이 잘못된 어셈블리 이름을 포함합니다.

또는

typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.

어셈블리 또는 해당 종속성 중 하나가 현재 로드된 런타임에 대해 유효하지 않습니다.

설명

이 메서드에 대한 사용 시나리오 및 및 typeResolver 매개 변수에 assemblyResolver 대한 세부 정보는 메서드 오버로드에서 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 찾을 수 있습니다.

참고

찾을 수 없는 경우 typeName 메서드에 대한 호출은 를 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) 반환합니다 null. 예외를 throw하지 않습니다. 예외가 throw되는지 여부를 제어하려면 매개 변수가 있는 메서드의 GetType 오버로드를 throwOnError 호출합니다.

이 메서드 오버로드를 호출하는 것은 메서드 오버로드를 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 호출하고 및 ignoreCase 매개 변수를 throwOnError 지정하는 false 것과 동일합니다.

적용 대상

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

Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs
Source:
Type.CoreCLR.cs

형식을 찾을 수 없는 경우 예외를 throw할지를 지정하고 어셈블리 및 형식을 확인할 수 있는 사용자 지정 메서드를 선택적으로 제공하여, 지정된 이름의 형식을 가져옵니다.

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

가져올 형식의 이름입니다. typeResolver 매개 변수가 제공되는 경우 형식 이름은 typeResolver에서 확인 가능한 임의의 문자열일 수 있습니다. 매개 변수가 assemblyResolver 제공되거나 표준 형식 확인이 사용되는 typeName 경우 형식이 현재 실행 중인 어셈블리 또는 mscorlib.dll/System.Private.CoreLib.dll 있지 않으면 어셈블리 정규화된 이름(참조 AssemblyQualifiedName)이어야 합니다. 이 경우 네임스페이스에서 정규화된 형식 이름을 제공하기에 충분합니다.

assemblyResolver
Func<AssemblyName,Assembly>

typeName에 지정된 어셈블리를 찾고 반환하는 메서드입니다. 어셈블리 이름이 assemblyResolverAssemblyName 개체로 전달됩니다. typeName에 어셈블리의 이름이 포함되어 있지 않으면 assemblyResolver가 호출되지 않습니다. assemblyResolver가 제공되지 않으면 표준 어셈블리 확인이 수행됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요. 그렇게 하면 권한이 상승되어 악성 코드가 실행될 수 있습니다. 제공하는 메서드 또는 친숙한 메서드만 사용합니다.

typeResolver
Func<Assembly,String,Boolean,Type>

typeName 또는 표준 어셈블리 확인에서 반환된 어셈블리에서 assemblyResolver에 지정된 형식을 찾고 반환하는 메서드입니다. 어셈블리가 제공되지 않는 경우 이 메서드에서 어셈블리를 제공할 수 있습니다. 이 메서드는 또한 대/소문자를 구분하지 않는 검색을 수행할지를 지정하는 매개 변수를 사용하며, 해당 매개 변수에 false가 전달됩니다.

주의: 알 수 없거나 신뢰할 수 없는 호출자의 메서드를 전달하지 마세요.

throwOnError
Boolean

형식을 찾을 수 없는 경우 예외를 throw하려면 true이고, false을 반환하려면 null입니다. 또한 false 를 지정하면 다른 예외 조건 중 일부(모두 아님)가 표시되지 않습니다. 예외 섹션을 참조하세요.

반환

지정된 이름의 형식입니다. 형식을 찾을 수 없는 경우에는 throwOnError 매개 변수가 null을 반환할지 아니면 예외를 throw할지 지정합니다. 경우에 따라서는 throwOnError 값과 상관없이 예외가 throw됩니다. 예외 섹션을 참조하세요.

예외

typeName이(가) null인 경우

클래스 이니셜라이저가 호출되고 예외를 throw합니다.

throwOnErrortrue 이고 형식을 찾을 수 없습니다.

또는

throwOnErrortrue 이고 typeName 이 포함된 탭 등의 잘못된 문자를 포함합니다.

또는

throwOnErrortrue 이고 typeName 이 빈 문자열입니다.

또는

throwOnErrortrue 이고 typeName 이 잘못된 크기를 가진 배열 형식을 나타냅니다.

또는

typeNameTypedReference 배열을 나타냅니다.

typeName이 형식 이름 및 어셈블리 이름으로 구문 분석되면 오류가 발생합니다(예: 단순 형식 이름에 이스케이프되지 않은 특수 문자가 포함된 경우).

또는

throwOnErrortrue이고 typeName이 잘못된 구문(예: "MyType[,*,]")을 포함합니다.

또는

typeName 이 형식 인수 중 하나로 포인터 형식, ByRef 형식 또는 Void 를 가진 제네릭 형식을 나타냅니다.

또는

typeName 은 형식 인수의 개수가 잘못된 제네릭 형식을 나타냅니다.

또는

typeName은 제네릭 형식을 나타내며 그 형식 인수 중 하나가 해당 형식 매개 변수에 대한 제약 조건을 충족하지 않습니다.

throwOnErrortrue이고 어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾을 수 없습니다.

또는

typeName이 잘못된 어셈블리 이름을 포함합니다.

또는

typeName이 형식 이름이 없는 올바른 어셈블리 이름입니다.

어셈블리 또는 여기에 종속되어 있는 어셈블리 중 하나를 찾았지만 로드할 수 없습니다.

어셈블리 또는 해당 종속성 중 하나가 현재 로드된 런타임에 대해 유효하지 않습니다.

설명

이 메서드에 대한 사용 시나리오 및 및 typeResolver 매개 변수에 assemblyResolver 대한 세부 정보는 메서드 오버로드에서 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 찾을 수 있습니다.

이 메서드 오버로드를 호출하는 것은 메서드 오버로드를 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) 호출하고 매개 변수를 ignoreCase 지정하는 false 것과 동일합니다.

적용 대상