Type.GetType Type.GetType Type.GetType Type.GetType Method

定義

指定された型を表す Type オブジェクトを取得します。 Gets a Type object that represents the specified type.

オーバーロード

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

大文字と小文字を区別せずに検索を実行するかどうか、および型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。 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(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。 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>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) 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() GetType() GetType() GetType()

現在の Type を取得します。 Gets the current Type.

GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean)

大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の 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) GetType(String) GetType(String) GetType(String)

大文字と小文字を区別する検索を実行して、指定した名前の Type を取得します。 Gets the Type with the specified name, performing a case-sensitive search.

GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean)

指定した名前を持つ 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>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

大文字と小文字を区別せずに検索を実行するかどうか、および型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。 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 String String 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 パラメーターを指定する場合、または標準の型解決を使用する場合は、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. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 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 Boolean Boolean Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は 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 Boolean Boolean Boolean

大文字と小文字を区別せずに typeName の検索を実行するには true。大文字と小文字を区別して 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 を返すか例外をスローするかを指定します。 If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 In some cases, an exception is thrown regardless of the value of throwOnError. 「例外」を参照してください。 See the Exceptions section.

例外

クラス初期化子が呼び出され、例外をスローします。 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- typeName は、TypedReference の配列を表します。 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 は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。 throwOnError is true and the assembly or one of its dependencies was not found.

アセンブリ、またはその依存関係のうちの 1 つが見つかったが、読み込めませんでした。 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.

アセンブリ、またはその依存関係のうちの 1 つが無効です。 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).

たとえば、バージョン トレラントなシリアル化でこのメソッド使用する部分的な名前を使用して"best fit"のアセンブリを検索できます。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.

  • 省略した場合、assemblyResolvertypeResolverの値は、パラメーター、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.

  • 場合throwOnErrortrue、このメソッドがスローされます、TypeLoadExceptionときtypeResolverを返しますnullFileNotFoundExceptionときassemblyResolverを返しますnullIf throwOnError is true, this method throws a TypeLoadException when typeResolver returns null, and a FileNotFoundException when assemblyResolver returns null.

  • このメソッドによってスローされた例外をキャッチしませんassemblyResolvertypeResolverします。This method does not catch exceptions thrown by assemblyResolver and typeResolver. したが、競合回避モジュールのメソッドによってスローされる例外を担当します。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返しますnulltypeResolverは呼び出されませんとそれ以上の処理が発生します。 さらに、場合throwOnErrortrueFileNotFoundExceptionがスローされます。If assemblyResolver returns null, typeResolver is not called and no further processing occurs; additionally, if throwOnError is true, a FileNotFoundException is thrown.

場合、AssemblyNameに渡されるassemblyResolver部分は、名前、1 つ以上の一部が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または標準のアセンブリをプローブ返しますnulltypeResolverは呼び出されません。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返しますnullthrowOnErrortrueのこのオーバー ロードGetTypeスロー、 TypeLoadExceptionIf 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を受信するため、nullDictionary<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# で作成することはできませんが、Microsoft intermediate language (MSIL) を使用するか、動的アセンブリを出力に作成できます。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 名前解決Mixed Name Resolution

次の表は、間の相互作用をまとめたものですassemblyResolvertypeResolver、型名とアセンブリ名のすべての組み合わせに対して、既定の名前解決と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.
type 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.
type 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 AFileLoadExceptionアセンブリ修飾型名の場合と同様に、アセンブリ名は解析されるので、スローされます。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.

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

型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。 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 String String 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 パラメーターを指定する場合、または標準の型解決を使用する場合は、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. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 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 Boolean Boolean Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は 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 を返すか例外をスローするかを指定します。 If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 In some cases, an exception is thrown regardless of the value of throwOnError. 「例外」を参照してください。 See the Exceptions section.

例外

クラス初期化子が呼び出され、例外をスローします。 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- typeName は、TypedReference の配列を表します。 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 は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。 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.

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。 The assembly or one of its dependencies was found, but could not be loaded.

アセンブリまたはその依存関係のうちの 1 つが正しくありません。 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.

注釈

このメソッドの詳細な使用シナリオ、assemblyResolvertypeResolverでパラメーターが見つかりません、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)メソッドのオーバー ロードを指定してfalseignoreCaseパラメーター。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>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) 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 String String 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 パラメーターを指定する場合、または標準の型解決を使用する場合は、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. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 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.

例外

クラス初期化子が呼び出され、例外をスローします。 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 は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName は、TypedReference の配列を表します。 typeName represents an array of TypedReference.

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。 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.

アセンブリ、またはその依存関係のうちの 1 つが無効です。 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.

注釈

このメソッドの詳細な使用シナリオ、assemblyResolvertypeResolverでパラメーターが見つかりません、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. 例外はスローされません。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)メソッドのオーバー ロードを指定してfalsethrowOnErrorignoreCaseパラメーター。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() GetType() GetType() 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.

実装
例外

クラス初期化子が呼び出され、例外をスローします。 A class initializer is invoked and throws an exception.

こちらもご覧ください

GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean) GetType(String, Boolean)

大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の 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 String String 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 Boolean Boolean Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は 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 を返すか例外をスローするかを指定します。 If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 In some cases, an exception is thrown regardless of the value of throwOnError. 「例外」を参照してください。 See the Exceptions section.

例外

クラス初期化子が呼び出され、例外をスローします。 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- typeName は、TypedReference の配列を表します。 typeName represents an array of TypedReference.

throwOnErrortrue であり、typeName に無効な構文が含まれています。 throwOnError is true and typeName contains invalid syntax. 例: "MyType[,*,]"。 For example, "MyType[,*,]". - または - -or- typeName は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。 throwOnError is true and the assembly or one of its dependencies was not found.

Windows ストア アプリ用 .NET またはポータブル クラス ライブラリでは、基本クラスの例外である IOException を代わりにキャッチします。 In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。 The assembly or one of its dependencies was found, but could not be loaded.

アセンブリまたはその依存関係のうちの 1 つが正しくありません。 The assembly or one of its dependencies is not valid. - または - -or- 共通言語ランタイムの Version 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

注釈

使用することができます、GetTypeメソッドを取得する、Typeから取得できるアセンブリ修飾名がわかっている場合、別のアセンブリ内の型のオブジェクトAssemblyQualifiedNameします。You 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. 使用してアセンブリを読み込むこともできます、Loadメソッドでは、次を使用して、GetTypeまたはGetTypesのメソッド、Assemblyクラスを取得するTypeオブジェクト。You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. 使用する方が効率的では、型がコンパイル時に既知のプログラムにアセンブリ内にある場合は、 typeof c# でGetTypeVisual basic、またはtypeidC++ では。If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C#, GetType in Visual Basic, or typeid in C++.

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. それ以外の場合、メモリ内アセンブリの 2 つのコピーが表示されます。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. 値に関係なくいくつかの例外がスローされるthrowOnErrorします。Some exceptions are thrown regardless of the value of throwOnError. たとえば、種類が見つかりましたが、アンロードすることはできません、TypeLoadExceptionがスローされた場合でも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 非静的Non-Static
コンストラクターConstructor ×No ×No
フィールドField ×No はい。Yes. フィールドは、常に、名前とシグネチャによる非表示です。A field is always hide-by-name-and-signature.
eventEvent 利用不可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. 名前とシグネチャによる非表示にするは、すべてのパーツのカスタム修飾子を含む、シグネチャの戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約と見なします。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 アクセサーのみ、基本クラスに、get と set アクセサーの両方を持つプロパティがある場合は、派生クラスのプロパティには、基底クラスのプロパティが非表示にし、基本クラスの set アクセス操作子にアクセスすることはできません。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. 以下を参照してください。AssemblyQualifiedNameSee 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 version 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 (`) ジェネリック型の名前の末尾にある、型パラメーターの数を表す 1 つ以上の数字の前にします。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"では"が"\+\+"、および"\「が」\\"。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>は 2 つの型パラメーターがあります。For example, a generic Dictionary<TKey,TValue> has two type parameters. ADictionary<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.

Null 許容型は、ジェネリック型の特殊なケースです。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 で、型の演算子を使用して、null 許容型を取得することもできます。In C#, C++, and Visual Basic you can also get nullable types using type operators. たとえば、null 許容Booleanによって型が返されるtypeof(Nullable<bool>)c# によってNullable<Boolean>::typeidC++ では、および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.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[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&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。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[,]")
1 つの型引数を持つジェネリック型A generic type with one type argument Type.GetType("MyGenericType1[MyType]")`Type.GetType("MyGenericType1[MyType]")`
2 つの型引数を持つジェネリック型A generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]")`Type.GetType("MyGenericType2[MyType,AnotherType]")`
2 つのアセンブリ修飾型引数を持つジェネリック型A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
アセンブリ修飾型引数を持つアセンブリ修飾のジェネリック型An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
型引数が 2 つの型引数を持つジェネリック型のジェネリック型A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
こちらもご覧ください

GetType(String) GetType(String) GetType(String) 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 String String 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.

例外

クラス初期化子が呼び出され、例外をスローします。 A class initializer is invoked and throws an exception.

typeName は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName は、TypedReference の配列を表します。 typeName represents an array of TypedReference.

Windows ストア アプリ用 .NET またはポータブル クラス ライブラリでは、基本クラスの例外である IOException を代わりにキャッチします。 In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。 The assembly or one of its dependencies was found, but could not be loaded.

アセンブリまたはその依存関係のうちの 1 つが正しくありません。 The assembly or one of its dependencies is not valid. - または - -or- 共通言語ランタイムの Version 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

注釈

使用することができます、GetTypeメソッドを取得する、Typeから取得できるアセンブリ修飾名がわかっている場合、別のアセンブリ内の型のオブジェクトAssemblyQualifiedNameします。You 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. 使用してアセンブリを読み込むこともできます、Loadメソッドでは、次を使用して、GetTypeまたはGetTypesのメソッド、Assemblyクラスを取得するTypeオブジェクト。You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. C# で使用する方が効率的では型がコンパイル時に既知のプログラムにアセンブリ内にある場合は、 GetType Visual Basic、または C++ です。If a type is in an assembly known to your program at compile time, it is more efficient to use in C#, GetType in Visual Basic, or in C++.

注意

場合typeNameが見つからないことを呼び出し、GetType(String)メソッドを返します。nullします。If typeName cannot be found, the call to the GetType(String) method returns null. 例外はスローされません。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. それ以外の場合、メモリ内アセンブリの 2 つのコピーが表示されます。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 非静的Non-Static
コンストラクターConstructor ×No ×No
フィールドField ×No はい。Yes. フィールドは、常に、名前とシグネチャによる非表示です。A field is always hide-by-name-and-signature.
eventEvent 利用不可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. 名前とシグネチャによる非表示にするは、すべてのパーツのカスタム修飾子を含む、シグネチャの戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約と見なします。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 アクセサーのみ、基本クラスに、get と set アクセサーの両方を持つプロパティがある場合は、派生クラスのプロパティには、基底クラスのプロパティが非表示にし、基本クラスの set アクセス操作子にアクセスすることはできません。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. 以下を参照してください。AssemblyQualifiedNameSee 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 version 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 (`) ジェネリック型の名前の末尾にある、型パラメーターの数を表す 1 つ以上の数字の前にします。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"では"が"\+\+"、および"\「が」\\"。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>は 2 つの型パラメーターがあります。For example, a generic Dictionary<TKey,TValue> has two type parameters. ADictionary<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.

Null 許容型は、ジェネリック型の特殊なケースです。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 で、型の演算子を使用して、null 許容型を取得することもできます。In C#, C++, and Visual Basic you can also get nullable types using type operators. たとえば、null 許容Booleanによって型が返されるtypeof(Nullable<bool>)c# によってNullable<Boolean>::typeidC++ では、および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.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[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&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。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[,]")
1 つの型引数を持つジェネリック型A generic type with one type argument Type.GetType("MyGenericType1[MyType]")`Type.GetType("MyGenericType1[MyType]")`
2 つの型引数を持つジェネリック型A generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]")`Type.GetType("MyGenericType2[MyType,AnotherType]")`
2 つのアセンブリ修飾型引数を持つジェネリック型A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
アセンブリ修飾型引数を持つアセンブリ修飾のジェネリック型An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
型引数が 2 つの型引数を持つジェネリック型のジェネリック型A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
こちらもご覧ください

GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean) GetType(String, Boolean, Boolean)

指定した名前を持つ 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 String String 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 Boolean Boolean Boolean

型が見つからないときに例外をスローする場合は truefalse を返す場合は nullfalse を指定すると、他の一部の例外条件も抑制されることがあります。 true to throw an exception if the type cannot be found; false to return null.Specifying false also suppresses some other exception conditions, but not all of them. 「例外」を参照してください。 See the Exceptions section.

ignoreCase
Boolean Boolean Boolean Boolean

大文字と小文字を区別せずに typeName の検索を実行するには true。大文字と小文字を区別して 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 を返すか例外をスローするかを指定します。 If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 In some cases, an exception is thrown regardless of the value of throwOnError. 「例外」を参照してください。 See the Exceptions section.

例外

クラス初期化子が呼び出され、例外をスローします。 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- typeName は、TypedReference の配列を表します。 typeName represents an array of TypedReference.

throwOnErrortrue であり、typeName に無効な構文が含まれています。 throwOnError is true and typeName contains invalid syntax. 例: "MyType[,*,]"。 For example, "MyType[,*,]". - または - -or- typeName は、型引数の 1 つとしてポインター型、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 がジェネリック型を表しており、その型引数の 1 つが対応する型パラメーターの制約を満たしていません。 typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。 throwOnError is true and the assembly or one of its dependencies was not found.

アセンブリ、またはその依存関係のうちの 1 つは見つかりましたが、読み込めませんでした。 The assembly or one of its dependencies was found, but could not be loaded.

アセンブリまたはその依存関係のうちの 1 つが正しくありません。 The assembly or one of its dependencies is not valid. - または - -or- 共通言語ランタイムの Version 2.0 以降を現在読み込み中です。またアセンブリは新しいバージョンでコンパイルされました。 Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

注釈

使用することができます、GetTypeメソッドを取得する、Typeから取得できるアセンブリ修飾名がわかっている場合、別のアセンブリ内の型のオブジェクトAssemblyQualifiedNameします。You 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. 使用してアセンブリを読み込むこともできます、Loadメソッドでは、次を使用して、GetTypeまたはGetTypesのメソッド、Assemblyクラスを取得するTypeオブジェクト。You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. 使用する方が効率的では、型がコンパイル時に既知のプログラムにアセンブリ内にある場合は、 typeof c# でGetTypeVisual basic、またはtypeidC++ では。If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C#, GetType in Visual Basic, or typeid in C++.

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. それ以外の場合、メモリ内アセンブリの 2 つのコピーが表示されます。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. 値に関係なくいくつかの例外がスローされるthrowOnErrorします。Some exceptions are thrown regardless of the value of throwOnError. たとえば、種類が見つかりましたが、アンロードすることはできません、TypeLoadExceptionがスローされた場合でも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 非静的Non-Static
コンストラクターConstructor ×No ×No
フィールドField ×No はい。Yes. フィールドは、常に、名前とシグネチャによる非表示です。A field is always hide-by-name-and-signature.
eventEvent 利用不可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. 名前とシグネチャによる非表示にするは、すべてのパーツのカスタム修飾子を含む、シグネチャの戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約と見なします。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 アクセサーのみ、基本クラスに、get と set アクセサーの両方を持つプロパティがある場合は、派生クラスのプロパティには、基底クラスのプロパティが非表示にし、基本クラスの set アクセス操作子にアクセスすることはできません。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. 以下を参照してください。AssemblyQualifiedNameSee 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 version 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 (`) ジェネリック型の名前の末尾にある、型パラメーターの数を表す 1 つ以上の数字の前にします。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"では"が"\+\+"、および"\「が」\\"。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>は 2 つの型パラメーターがあります。For example, a generic Dictionary<TKey,TValue> has two type parameters. ADictionary<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.

Null 許容型は、ジェネリック型の特殊なケースです。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 で、型の演算子を使用して、null 許容型を取得することもできます。In C#, C++, and Visual Basic you can also get nullable types using type operators. たとえば、null 許容Booleanによって型が返されるtypeof(Nullable<bool>)c# によってNullable<Boolean>::typeidC++ では、および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.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[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&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。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[,]")
1 つの型引数を持つジェネリック型A generic type with one type argument Type.GetType("MyGenericType1[MyType]")`Type.GetType("MyGenericType1[MyType]")`
2 つの型引数を持つジェネリック型A generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]")`Type.GetType("MyGenericType2[MyType,AnotherType]")`
2 つのアセンブリ修飾型引数を持つジェネリック型A generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
アセンブリ修飾型引数を持つアセンブリ修飾のジェネリック型An assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
型引数が 2 つの型引数を持つジェネリック型のジェネリック型A generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
こちらもご覧ください

適用対象