Type.GetType メソッド

定義

指定された型を表す Type オブジェクトを取得します。

オーバーロード

GetType()

現在の Type を取得します。

GetType(String)

大文字と小文字を区別する検索を実行して、指定した名前の Type を取得します。

GetType(String, Boolean)

大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の Type を取得します。

GetType(String, Boolean, Boolean)

指定した名前を持つ Type を取得します。型が見つからない場合に例外をスローするかどうかと、大文字と小文字を区別する検索を実行するかどうかも指定します。

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

指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。

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

型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。

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

大文字と小文字を区別せずに検索を実行するかどうか、および型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。

GetType()

現在の Type を取得します。

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

戻り値

Type

現在の Type です。

実装

例外

クラス初期化子が呼び出され、例外をスローします。

こちらもご覧ください

適用対象

GetType(String)

大文字と小文字を区別する検索を実行して、指定した名前の Type を取得します。

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

パラメーター

typeName
String

取得する型のアセンブリ修飾名。 以下を参照してください。AssemblyQualifiedName 型が現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll にある場合は、名前空間で修飾された型名を提供するだけで十分です。

戻り値

Type

存在する場合は、指定した名前を持つ型。それ以外の場合は null

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

typeName が、型引数の 1 つとしてポインター型、ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

typeNameTypedReference の配列を表しています。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

注: .net で Windows ストアアプリまたはポータブルクラスライブラリを使用する場合は、代わりに基底クラスの例外をキャッチして IOException ください。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

共通言語ランタイムの Version 2.0 以降を現在読み込み中です。またアセンブリは新しいバージョンでコンパイルされました。

次の例では、の型を取得 System.Int32 し、その型のオブジェクトを使用して、のプロパティを表示し FullName 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 ます。 GetType で指定されたアセンブリの読み込みを発生させ typeName ます。 また、メソッドを使用してアセンブリを読み込み、 Assembly.Load Assembly.GetType メソッドまたはメソッドを使用してオブジェクトを取得することもでき Assembly.GetTypes Type ます。 コンパイル時にプログラムによって認識されるアセンブリに型がある場合は、 typeof Visual Basic で C# または演算子を使用する方が効率的です GetType

注意

typeNameが見つからない場合、メソッドの呼び出しは GetType(String) を返し null ます。 例外はスローされません。 例外がスローされるかどうかを制御するには、 GetType パラメーターを持つメソッドのオーバーロードを呼び出し throwOnError ます。

GetType は、ディスクから読み込まれたアセンブリに対してのみ機能します。 GetTypeを呼び出して、サービスを使用して定義された動的アセンブリで定義されている型を検索すると System.Reflection.Emit 、一貫性のない動作が発生する可能性があります。 動作は、動的アセンブリが永続的である (つまり、 RunAndSave Save 列挙体のアクセスモードまたはアクセスモードを使用して作成される) かどうかによって異なり System.Reflection.Emit.AssemblyBuilderAccess ます。 が呼び出される前に動的アセンブリが永続的でディスクに書き込まれている場合 GetType 、ローダーはディスク上に保存されているアセンブリを検索し、そのアセンブリを読み込み、そのアセンブリから型を取得します。 が呼び出されたときにアセンブリがディスクに保存されていない場合 GetType 、メソッドはを返し null ます。 GetType は、一時的な動的アセンブリを認識しません。そのため、を呼び出して、 GetType 一時動的アセンブリ内の型を取得すると、が返さ null れます。

動的モジュールでを使用するには GetType 、イベントをサブスクライブし、を AppDomain.AssemblyResolve GetType 保存する前にを呼び出します。 それ以外の場合は、メモリ内のアセンブリのコピーが2つ取得されます。

次の表は、型に対してリフレクションを行うときに、メソッドによって返される基底クラスのメンバーを示してい Get ます。

メンバーの型 静的 非静的
コンストラクター いいえ いいえ
フィールド いいえ はい。 フィールドは、常に名前と署名で隠ぺいされます。
Event 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
メソッド いいえ はい。 メソッド (仮想と非仮想の両方) は、非表示にするか、名前と署名を隠すことができます。
入れ子にされた型 いいえ いいえ
プロパティ 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
  1. 名前による隠ぺいと署名では、カスタム修飾子、戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約を含む、シグネチャのすべての部分が考慮されます。 これは、バイナリ比較です。

  2. リフレクションの場合、プロパティとイベントは、名前とシグネチャが隠ぺいされます。 基底クラスに get と set の両方のアクセサーを持つプロパティがあり、派生クラスに get アクセサーのみがある場合、派生クラスのプロパティは基底クラスのプロパティを非表示にします。基底クラスの setter にアクセスすることはできません。

  3. カスタム属性は、共通型システムの一部ではありません。

配列または COM 型は、使用可能なクラスのテーブルに既に読み込まれていない限り、検索されません。

typeName 名前空間で修飾された型名、またはアセンブリ名の指定を含むアセンブリ修飾名を指定できます。 以下を参照してください。AssemblyQualifiedName

typeName 名前空間を含み、アセンブリ名を含まない場合、このメソッドは、呼び出し元のオブジェクトのアセンブリと、その順序で mscorlib.dll/System.Private.CoreLib.dll を検索します。 TypeName が部分的または完全なアセンブリ名で完全修飾されている場合、このメソッドは指定されたアセンブリを検索します。 アセンブリに厳密な名前が付いている場合は、完全なアセンブリ名が必要です。

プロパティは、 AssemblyQualifiedName 入れ子にされた型、アセンブリ名、およびジェネリック型引数を含む完全修飾型名を返します。 共通言語ランタイムをサポートするすべてのコンパイラは、入れ子になったクラスの簡易名を出力します。リフレクションは、次の規則に従って、クエリを実行すると、破損した名前を生成します。

注意

.NET Framework バージョン2.0 では、プロセッサアーキテクチャがアセンブリ id に追加され、アセンブリ名文字列の一部として指定できるようになりました。 たとえば、"ProcessorArchitecture = msil" のようになります。 ただし、 AssemblyQualifiedName 互換性上の理由から、プロパティによって返される文字列には含まれません。 オブジェクトを作成 AssemblyName し、メソッドの適切なオーバーロードに渡すことで、型を読み込むこともでき Load ます。 その後、メソッドを使用し Assembly.GetType て、アセンブリから型を読み込むことができます。 参照 AssemblyName.ProcessorArchitecture.

区切り記号 説明
円記号 (\) エスケープ文字。
バックティック (') ジェネリック型の名前の末尾にある型パラメーターの数を表す1桁以上の数字に先行します。
角かっこ ([]) 構築されたジェネリック型のジェネリック型引数リストを囲みます。型引数リスト内で、アセンブリ修飾型を囲みます。
コンマ (,) アセンブリ名の前に指定します。
ピリオド (.) 名前空間識別子を表します。
プラス記号 (+) 入れ子になったクラスの前に置きます。

たとえば、クラスの完全修飾名は次のようになります。

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

名前空間が TopNamespace. Sub + 名前空間の場合、文字列は、 \ 入れ子の区切り記号として解釈されないように、正符号 (+) の前にエスケープ文字 () を付ける必要があります。 リフレクションは、この文字列を次のように出力します。

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

"+ +" は " \ + \ +" になり、"" は "" になり \ \ \ ます。

この修飾名は永続化でき、後でを読み込むために使用でき Type ます。 を検索して読み込むに Type は、 GetType 型名のみを使用するか、アセンブリ修飾型名を指定してを使用します。 GetType 型名を指定した場合は、 Type 呼び出し元のアセンブリでを検索し、次にシステムアセンブリでを検索します。 GetType アセンブリ修飾型名を使用すると、任意のアセンブリでが検索され Type ます。

型名には、型が参照型、ポインター型、配列型のいずれであるかなど、型に関する追加情報を示す末尾の文字を含めることができます。 末尾の文字を含まない型名を取得するに t.GetElementType().ToString() は、を使用し t ます。は型です。

スペースは、アセンブリ名を除くすべての型名のコンポーネントに関連します。 アセンブリ名では、', ' 区切り記号の前のスペースが関連しますが、', ' 区切り記号の後のスペースは無視されます。

ジェネリック型の名前は、バックティック ( ` ) の後にジェネリック型引数の数を表す数字で終わります。 この名前の変形の目的は、同じスコープで発生する、同じ名前で型パラメーターの数が異なるジェネリック型をコンパイラがサポートできるようにすることです。 たとえば、リフレクションでは、破損した名前 Tuple`1 と、 Tuple`2 Tuple(Of T) Tuple(Of T0, T1) Visual Basic、または Tuple<T> Visual C# のとのジェネリックメソッドからが返され Tuple<T0, T1> ます。

ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。 たとえば、ジェネリックには Dictionary<TKey,TValue> 2 つの型パラメーターがあります。 Dictionary<TKey,TValue> MyType 型のキーを持つのは、次のように String 表されます。

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

型引数リスト内でアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。 それ以外の場合、アセンブリ修飾名の一部を区切るコンマは、追加の型引数の区切りとして解釈されます。 たとえば、 Dictionary<TKey,TValue> 型のキーを持つ fromMyAssembly.dll のは、次のように MyType String 指定できます。

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

注意

アセンブリ修飾型は、型パラメーターリスト内に出現する場合にのみ、角かっこで囲むことができます。 型パラメーターリスト内の修飾型および非修飾型のアセンブリを検索するための規則は、修飾された非修飾の非ジェネリック型の規則と同じです。

Null 許容型は、ジェネリック型の特殊なケースです。 たとえば、null 値が許容されるは、 Int32 "system. nullable ' 1 [system.string]" という文字列で表されます。

注意

C#、C++、および Visual Basic では、型演算子を使用して null 許容型を取得することもできます。 たとえば、null 許容型は、 Boolean C# では、C++ では、 typeof(Nullable<bool>) および Visual Basic のによって返され Nullable<Boolean>::typeid GetType(Nullable(Of Boolean)) ます。

次の表は、さまざまな型に対してで使用する構文を示して GetType います。

取得するには 使用
Null 許容型 Int32 Type.GetType("System.Nullable`1[System.Int32]")
へのアンマネージポインター。 MyType Type.GetType("MyType*")
へのポインターへのアンマネージポインター。 MyType Type.GetType("MyType**")
マネージポインターまたはへの参照 MyType Type.GetType("MyType&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。
親クラスと入れ子になったクラス Type.GetType("MyParentClass+MyNestedClass")
下限が0の1次元配列。 Type.GetType("MyType[]")
不明な下限を持つ1次元配列。 Type.GetType("MyType[*]")
N 次元配列 角かっこ内のコンマ (,) は、合計 n-1 回です。 たとえば、は System.Object[,,] 3 次元配列を表し Object ます。
1次元配列の配列。 Type.GetType("MyType[][]")
下限が不明な四角形の2次元配列 Type.GetType("MyType[,]")
1つの型引数を持つジェネリック型 Type.GetType("MyGenericType`1[MyType]")
2つの型引数を持つジェネリック型 Type.GetType("MyGenericType`2[MyType,AnotherType]")
2つのアセンブリ修飾型引数を持つジェネリック型 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
アセンブリ修飾型引数を持つアセンブリ修飾ジェネリック型 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
型引数が2つの型引数を持つジェネリック型であるジェネリック型。 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

こちらもご覧ください

適用対象

GetType(String, Boolean)

大文字と小文字を区別する検索を実行し、型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の Type を取得します。

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

パラメーター

typeName
String

取得する型のアセンブリ修飾名。 以下を参照してください。AssemblyQualifiedName 型が現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll にある場合は、名前空間で修飾された型名を提供するだけで十分です。

throwOnError
Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は null。 また、false を指定すると、一部の例外条件は抑制されますが、すべての例外が抑制されるわけではありません。 「例外」を参照してください。

戻り値

Type

指定した名前を持つ型。 型が見つからない場合、throwOnError パラメーターで null を返すか例外をスローするかを指定します。 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 「例外」を参照してください。

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

throwOnErrortrue です。型が見つかりません。

または throwOnErrortrue です。 typeName に埋め込まれたタブなどの正しくない文字が含まれています。 または throwOnErrortrue です。 typeName は空の文字列です。

または throwOnErrortrue です。 typeName は無効なサイズの配列型を表します。

または typeNameTypedReference の配列を表しています。

throwOnErrortrue で、 typeName に正しくない構文が含まれています。 例: "MyType[,*,]"。

または typeName が、型引数の 1 つとしてポインター型、 ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

注: .net で Windows ストアアプリまたはポータブルクラスライブラリを使用する場合は、代わりに基底クラスの例外をキャッチして IOException ください。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

共通言語ランタイムの Version 2.0 以降を現在読み込み中です。またアセンブリは新しいバージョンでコンパイルされました。

次の例では、の型を取得 System.Int32 し、その型のオブジェクトを使用して、のプロパティを表示し FullName 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 ます。 GetType で指定されたアセンブリの読み込みを発生させ typeName ます。 また、メソッドを使用してアセンブリを読み込み、 Assembly.Load Assembly.GetType メソッドまたはメソッドを使用してオブジェクトを取得することもでき Assembly.GetTypes Type ます。 コンパイル時にプログラムによって認識されるアセンブリに型がある場合は、 typeof Visual Basic で C# または演算子を使用する方が効率的です GetType

GetType は、ディスクから読み込まれたアセンブリに対してのみ機能します。 GetTypeを呼び出して、サービスを使用して定義された動的アセンブリで定義されている型を検索すると System.Reflection.Emit 、一貫性のない動作が発生する可能性があります。 動作は、動的アセンブリが永続的である (つまり、 RunAndSave Save 列挙体のアクセスモードまたはアクセスモードを使用して作成される) かどうかによって異なり System.Reflection.Emit.AssemblyBuilderAccess ます。 が呼び出される前に動的アセンブリが永続的でディスクに書き込まれている場合 GetType 、ローダーはディスク上に保存されているアセンブリを検索し、そのアセンブリを読み込み、そのアセンブリから型を取得します。 が呼び出されたときにアセンブリがディスクに保存されていない場合 GetType 、メソッドはを返し null ます。 GetType は、一時的な動的アセンブリを認識しません。そのため、を呼び出して、 GetType 一時動的アセンブリ内の型を取得すると、が返さ null れます。

動的モジュールでを使用するには GetType 、イベントをサブスクライブし、を AppDomain.AssemblyResolve GetType 保存する前にを呼び出します。 それ以外の場合は、メモリ内のアセンブリのコピーが2つ取得されます。

パラメーターは、 throwOnError 型が見つからない場合の動作を指定します。また、「例外」セクションで説明されているように、他の特定の例外条件も抑制します。 の値に関係なく、いくつかの例外がスローされ throwOnError ます。 たとえば、型が見つかっても読み込むことができない場合、 TypeLoadException がの場合でも、がスローされ throwOnError false ます。

次の表は、型に対してリフレクションを行うときに、メソッドによって返される基底クラスのメンバーを示してい Get ます。

メンバーの型 静的 非静的
コンストラクター いいえ いいえ
フィールド いいえ はい。 フィールドは、常に名前と署名で隠ぺいされます。
Event 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
メソッド いいえ はい。 メソッド (仮想と非仮想の両方) は、非表示にするか、名前と署名を隠すことができます。
入れ子にされた型 いいえ いいえ
プロパティ 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
  1. 名前による隠ぺいと署名では、カスタム修飾子、戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約を含む、シグネチャのすべての部分が考慮されます。 これは、バイナリ比較です。

  2. リフレクションの場合、プロパティとイベントは、名前とシグネチャが隠ぺいされます。 基底クラスに get と set の両方のアクセサーを持つプロパティがあり、派生クラスに get アクセサーのみがある場合、派生クラスのプロパティは基底クラスのプロパティを非表示にします。基底クラスの setter にアクセスすることはできません。

  3. カスタム属性は、共通型システムの一部ではありません。

配列または COM 型は、使用可能なクラスのテーブルに既に読み込まれていない限り、検索されません。

typeName 名前空間で修飾された型名、またはアセンブリ名の指定を含むアセンブリ修飾名を指定できます。 以下を参照してください。AssemblyQualifiedName

typeName 名前空間を含み、アセンブリ名を含まない場合、このメソッドは、呼び出し元のオブジェクトのアセンブリと、その順序で mscorlib.dll/System.Private.CoreLib.dll を検索します。 TypeName が部分的または完全なアセンブリ名で完全修飾されている場合、このメソッドは指定されたアセンブリを検索します。 アセンブリに厳密な名前が付いている場合は、完全なアセンブリ名が必要です。

プロパティは、 AssemblyQualifiedName 入れ子にされた型、アセンブリ名、およびジェネリック引数を含む完全修飾型名を返します。 共通言語ランタイムをサポートするすべてのコンパイラは、入れ子になったクラスの簡易名を出力します。リフレクションは、次の規則に従って、クエリを実行すると、破損した名前を生成します。

注意

.NET Framework バージョン2.0 では、プロセッサアーキテクチャがアセンブリ id に追加され、アセンブリ名文字列の一部として指定できるようになりました。 たとえば、"ProcessorArchitecture = msil" のようになります。 ただし、 AssemblyQualifiedName 互換性上の理由から、プロパティによって返される文字列には含まれません。 オブジェクトを作成 AssemblyName し、メソッドの適切なオーバーロードに渡すことで、型を読み込むこともでき Load ます。 その後、メソッドを使用し Assembly.GetType て、アセンブリから型を読み込むことができます。 参照 AssemblyName.ProcessorArchitecture.

区切り記号 説明
円記号 (\) エスケープ文字。
バックティック (') ジェネリック型の名前の末尾にある型パラメーターの数を表す1桁以上の数字に先行します。
角かっこ ([]) 構築されたジェネリック型のジェネリック型引数リストを囲みます。型引数リスト内で、アセンブリ修飾型を囲みます。
コンマ (,) アセンブリ名の前に指定します。
ピリオド (.) 名前空間識別子を表します。
プラス記号 (+) 入れ子になったクラスの前に置きます。

たとえば、クラスの完全修飾名は次のようになります。

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

名前空間が TopNamespace. Sub + 名前空間の場合、文字列は、 \ 入れ子の区切り記号として解釈されないように、正符号 (+) の前にエスケープ文字 () を付ける必要があります。 リフレクションは、この文字列を次のように出力します。

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

"+ +" は " \ + \ +" になり、"" は "" になり \ \ \ ます。

この修飾名は永続化でき、後でを読み込むために使用でき Type ます。 を検索して読み込むに Type は、 GetType 型名のみを使用するか、アセンブリ修飾型名を指定してを使用します。 GetType 型名を指定した場合は、 Type 呼び出し元のアセンブリでを検索し、次にシステムアセンブリでを検索します。 GetType アセンブリ修飾型名を使用すると、任意のアセンブリでが検索され Type ます。

型名には、型が参照型、ポインター型、配列型のいずれであるかなど、型に関する追加情報を示す末尾の文字を含めることができます。 末尾の文字を含まない型名を取得するに t.GetElementType().ToString() は、を使用し t ます。は型です。

スペースは、アセンブリ名を除くすべての型名のコンポーネントに関連します。 アセンブリ名では、', ' 区切り記号の前のスペースが関連しますが、', ' 区切り記号の後のスペースは無視されます。

ジェネリック型の名前は、バックティック ( ` ) の後にジェネリック型引数の数を表す数字で終わります。 この名前の変形の目的は、同じスコープで発生する、同じ名前で型パラメーターの数が異なるジェネリック型をコンパイラがサポートできるようにすることです。 たとえば、リフレクションでは、破損した名前 Tuple`1 と、 Tuple`2 Tuple(Of T) Tuple(Of T0, T1) Visual Basic、または Tuple<T> Visual C# のとのジェネリックメソッドからが返され Tuple<T0, T1> ます。

ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。 たとえば、ジェネリックには Dictionary<TKey,TValue> 2 つの型パラメーターがあります。 Dictionary<TKey,TValue> MyType 型のキーを持つのは、次のように String 表されます。

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

型引数リスト内でアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。 それ以外の場合、アセンブリ修飾名の一部を区切るコンマは、追加の型引数の区切りとして解釈されます。 たとえば、 Dictionary<TKey,TValue> MyType 型のキーを含む MyAssembly.dll からのは、次のように String 指定することができます。

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

注意

アセンブリ修飾型は、型パラメーターリスト内に出現する場合にのみ、角かっこで囲むことができます。 型パラメーターリスト内の修飾型および非修飾型のアセンブリを検索するための規則は、修飾された非修飾の非ジェネリック型の規則と同じです。

Null 許容型は、ジェネリック型の特殊なケースです。 たとえば、null 値が許容されるは、 Int32 "system. nullable ' 1 [system.string]" という文字列で表されます。

注意

C#、C++、および Visual Basic では、型演算子を使用して null 許容型を取得することもできます。 たとえば、null 許容型は、 Boolean C# では、C++ では、 typeof(Nullable<bool>) および Visual Basic のによって返され Nullable<Boolean>::typeid GetType(Nullable(Of Boolean)) ます。

次の表は、さまざまな型に対してで使用する構文を示して GetType います。

取得するには 使用
Null 許容型 Int32 Type.GetType("System.Nullable`1[System.Int32]")
へのアンマネージポインター。 MyType Type.GetType("MyType*")
へのポインターへのアンマネージポインター。 MyType Type.GetType("MyType**")
マネージポインターまたはへの参照 MyType Type.GetType("MyType&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。
親クラスと入れ子になったクラス Type.GetType("MyParentClass+MyNestedClass")
下限が0の1次元配列。 Type.GetType("MyArray[]")
不明な下限を持つ1次元配列。 Type.GetType("MyArray[*]")
N 次元配列 角かっこ内のコンマ (,) は、合計 n-1 回です。 たとえば、は System.Object[,,] 3 次元配列を表し Object ます。
2次元配列の配列。 Type.GetType("MyArray[][]")
下限が不明な四角形の2次元配列 Type.GetType("MyArray[,]")
1つの型引数を持つジェネリック型 Type.GetType("MyGenericType`1[MyType]")
2つの型引数を持つジェネリック型 Type.GetType("MyGenericType`2[MyType,AnotherType]")
2つのアセンブリ修飾型引数を持つジェネリック型 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
アセンブリ修飾型引数を持つアセンブリ修飾ジェネリック型 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
型引数が2つの型引数を持つジェネリック型であるジェネリック型。 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

こちらもご覧ください

適用対象

GetType(String, Boolean, Boolean)

指定した名前を持つ Type を取得します。型が見つからない場合に例外をスローするかどうかと、大文字と小文字を区別する検索を実行するかどうかも指定します。

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

パラメーター

typeName
String

取得する型のアセンブリ修飾名。 以下を参照してください。AssemblyQualifiedName 型が現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll にある場合は、名前空間で修飾された型名を提供するだけで十分です。

throwOnError
Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は null。 また、false を指定すると、一部の例外条件は抑制されますが、すべての例外が抑制されるわけではありません。 「例外」を参照してください。

ignoreCase
Boolean

大文字と小文字を区別せずに true の検索を実行するには typeName。大文字と小文字を区別して false の検索を実行するには typeName

戻り値

Type

指定した名前を持つ型。 型が見つからない場合、throwOnError パラメーターで null を返すか例外をスローするかを指定します。 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 「例外」を参照してください。

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

throwOnErrortrue です。型が見つかりません。

または throwOnErrortrue です。 typeName に埋め込まれたタブなどの正しくない文字が含まれています。 または throwOnErrortrue です。 typeName は空の文字列です。

または throwOnErrortrue です。 typeName は無効なサイズの配列型を表します。

または typeNameTypedReference の配列を表しています。

throwOnErrortrue で、 typeName に正しくない構文が含まれています。 例: "MyType[,*,]"。

または typeName が、型引数の 1 つとしてポインター型、 ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

共通言語ランタイムの Version 2.0 以降を現在読み込み中です。またアセンブリは新しいバージョンでコンパイルされました。

注釈

GetType Type アセンブリ修飾名がわかっている場合は、メソッドを使用して、別のアセンブリ内の型のオブジェクトを取得できます。この名前はから取得でき AssemblyQualifiedName ます。 GetType で指定されたアセンブリの読み込みを発生させ typeName ます。 また、メソッドを使用してアセンブリを読み込み、 Assembly.Load Assembly.GetType メソッドまたはメソッドを使用してオブジェクトを取得することもでき Assembly.GetTypes Type ます。 コンパイル時にプログラムによって認識されるアセンブリに型がある場合は、 typeof Visual Basic で C# または演算子を使用する方が効率的です GetType

GetType は、ディスクから読み込まれたアセンブリに対してのみ機能します。 GetTypeを呼び出して、サービスを使用して定義された動的アセンブリで定義されている型を検索すると System.Reflection.Emit 、一貫性のない動作が発生する可能性があります。 動作は、動的アセンブリが永続的である (つまり、 RunAndSave Save 列挙体のアクセスモードまたはアクセスモードを使用して作成される) かどうかによって異なり System.Reflection.Emit.AssemblyBuilderAccess ます。 が呼び出される前に動的アセンブリが永続的でディスクに書き込まれている場合 GetType 、ローダーはディスク上に保存されているアセンブリを検索し、そのアセンブリを読み込み、そのアセンブリから型を取得します。 が呼び出されたときにアセンブリがディスクに保存されていない場合 GetType 、メソッドはを返し null ます。 GetType は、一時的な動的アセンブリを認識しません。そのため、を呼び出して、 GetType 一時動的アセンブリ内の型を取得すると、が返さ null れます。

動的モジュールでを使用するには GetType 、イベントをサブスクライブし、を AppDomain.AssemblyResolve GetType 保存する前にを呼び出します。 それ以外の場合は、メモリ内のアセンブリのコピーが2つ取得されます。

パラメーターは、 throwOnError 型が見つからない場合の動作を指定します。また、「例外」セクションで説明されているように、他の特定の例外条件も抑制します。 の値に関係なく、いくつかの例外がスローされ throwOnError ます。 たとえば、型が見つかっても読み込むことができない場合、 TypeLoadException がの場合でも、がスローされ throwOnError false ます。

次の表は、型に対してリフレクションを行うときに、メソッドによって返される基底クラスのメンバーを示してい Get ます。

メンバーの型 静的 非静的
コンストラクター いいえ いいえ
フィールド いいえ はい。 フィールドは、常に名前と署名で隠ぺいされます。
Event 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
メソッド いいえ はい。 メソッド (仮想と非仮想の両方) は、非表示にするか、名前と署名を隠すことができます。
入れ子にされた型 いいえ いいえ
プロパティ 適用なし 共通型システムの規則は、継承が、プロパティを実装するメソッドと同じであることを示します。 リフレクションは、プロパティを名前で隠す、署名として扱います。 下記のメモ2を参照してください。
  1. 名前による隠ぺいと署名では、カスタム修飾子、戻り値の型、パラメーターの型、sentinel、アンマネージ呼び出し規約を含む、シグネチャのすべての部分が考慮されます。 これは、バイナリ比較です。

  2. リフレクションの場合、プロパティとイベントは、名前とシグネチャが隠ぺいされます。 基底クラスに get と set の両方のアクセサーを持つプロパティがあり、派生クラスに get アクセサーのみがある場合、派生クラスのプロパティは基底クラスのプロパティを非表示にします。基底クラスの setter にアクセスすることはできません。

  3. カスタム属性は、共通型システムの一部ではありません。

配列または COM 型は、使用可能なクラスのテーブルに既に読み込まれていない限り、検索されません。

typeName 名前空間で修飾された型名、またはアセンブリ名の指定を含むアセンブリ修飾名を指定できます。 以下を参照してください。AssemblyQualifiedName

typeName 名前空間を含み、アセンブリ名を含まない場合、このメソッドは、呼び出し元のオブジェクトのアセンブリと、その順序で mscorlib.dll/System.Private.CoreLib.dll を検索します。 TypeName が部分的または完全なアセンブリ名で完全修飾されている場合、このメソッドは指定されたアセンブリを検索します。 アセンブリに厳密な名前が付いている場合は、完全なアセンブリ名が必要です。

プロパティは、 AssemblyQualifiedName 入れ子にされた型、アセンブリ名、および型引数を含む完全修飾型名を返します。 共通言語ランタイムをサポートするすべてのコンパイラは、入れ子になったクラスの簡易名を出力します。リフレクションは、次の規則に従って、クエリを実行すると、破損した名前を生成します。

注意

.NET Framework バージョン2.0 では、プロセッサアーキテクチャがアセンブリ id に追加され、アセンブリ名文字列の一部として指定できるようになりました。 たとえば、"ProcessorArchitecture = msil" のようになります。 ただし、 AssemblyQualifiedName 互換性上の理由から、プロパティによって返される文字列には含まれません。 オブジェクトを作成 AssemblyName し、メソッドの適切なオーバーロードに渡すことで、型を読み込むこともでき Load ます。 その後、メソッドを使用し Assembly.GetType て、アセンブリから型を読み込むことができます。 参照 AssemblyName.ProcessorArchitecture.

区切り記号 説明
円記号 (\) エスケープ文字。
バックティック (') ジェネリック型の名前の末尾にある型パラメーターの数を表す1桁以上の数字に先行します。
角かっこ ([]) 構築されたジェネリック型のジェネリック型引数リストを囲みます。型引数リスト内で、アセンブリ修飾型を囲みます。
コンマ (,) アセンブリ名の前に指定します。
ピリオド (.) 名前空間識別子を表します。
プラス記号 (+) 入れ子になったクラスの前に置きます。

たとえば、クラスの完全修飾名は次のようになります。

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

名前空間が TopNamespace. Sub + 名前空間の場合、文字列は、 \ 入れ子の区切り記号として解釈されないように、正符号 (+) の前にエスケープ文字 () を付ける必要があります。 リフレクションは、この文字列を次のように出力します。

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

"+ +" は " \ + \ +" になり、"" は "" になり \ \ \ ます。

この修飾名は永続化でき、後でを読み込むために使用でき Type ます。 を検索して読み込むに Type は、 GetType 型名のみを使用するか、アセンブリ修飾型名を指定してを使用します。 GetType 型名を指定した場合は、 Type 呼び出し元のアセンブリでを検索し、次にシステムアセンブリでを検索します。 GetType アセンブリ修飾型名を使用すると、任意のアセンブリでが検索され Type ます。

型名には、型が参照型、ポインター型、配列型のいずれであるかなど、型に関する追加情報を示す末尾の文字を含めることができます。 末尾の文字を含まない型名を取得するに t.GetElementType().ToString() は、を使用し t ます。は型です。

スペースは、アセンブリ名を除くすべての型名のコンポーネントに関連します。 アセンブリ名では、', ' 区切り記号の前のスペースが関連しますが、', ' 区切り記号の後のスペースは無視されます。

ジェネリック型の名前は、バックティック ( ` ) の後にジェネリック型引数の数を表す数字で終わります。 この名前の変形の目的は、同じスコープで発生する、同じ名前で型パラメーターの数が異なるジェネリック型をコンパイラがサポートできるようにすることです。 たとえば、リフレクションでは、破損した名前 Tuple`1 と、 Tuple`2 Tuple(Of T) Tuple(Of T0, T1) Visual Basic、または Tuple<T> Visual C# のとのジェネリックメソッドからが返され Tuple<T0, T1> ます。

ジェネリック型の場合、型引数リストは角かっこで囲まれ、型引数はコンマで区切られます。 たとえば、ジェネリックには Dictionary<TKey,TValue> 2 つの型パラメーターがあります。 Dictionary<TKey,TValue> MyType 型のキーを持つのは、次のように String 表されます。

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

型引数リスト内でアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこで囲みます。 それ以外の場合、アセンブリ修飾名の一部を区切るコンマは、追加の型引数の区切りとして解釈されます。 たとえば、 Dictionary<TKey,TValue> MyType 型のキーを含む MyAssembly.dll からのは、次のように String 指定することができます。

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

注意

アセンブリ修飾型は、型パラメーターリスト内に出現する場合にのみ、角かっこで囲むことができます。 型パラメーターリスト内の修飾型および非修飾型のアセンブリを検索するための規則は、修飾された非修飾の非ジェネリック型の規則と同じです。

Null 許容型は、ジェネリック型の特殊なケースです。 たとえば、null 値が許容されるは、 Int32 "system. nullable ' 1 [system.string]" という文字列で表されます。

注意

C#、C++、および Visual Basic では、型演算子を使用して null 許容型を取得することもできます。 たとえば、null 許容型は、 Boolean C# では、C++ では、 typeof(Nullable<bool>) および Visual Basic のによって返され Nullable<Boolean>::typeid GetType(Nullable(Of Boolean)) ます。

次の表は、さまざまな型に対してで使用する構文を示して GetType います。

取得するには 使用
Null 許容型 Int32 Type.GetType("System.Nullable`1[System.Int32]")
へのアンマネージポインター。 MyType Type.GetType("MyType*")
へのポインターへのアンマネージポインター。 MyType Type.GetType("MyType**")
マネージポインターまたはへの参照 MyType Type.GetType("MyType&"). ポインターとは異なり、参照は 1 つのレベルに制限されます。
親クラスと入れ子になったクラス Type.GetType("MyParentClass+MyNestedClass")
下限が0の1次元配列。 Type.GetType("MyArray[]")
不明な下限を持つ1次元配列。 Type.GetType("MyArray[*]")
N 次元配列 角かっこ内のコンマ (,) は、合計 n-1 回です。 たとえば、は System.Object[,,] 3 次元配列を表し Object ます。
2次元配列の配列。 Type.GetType("MyArray[][]")
下限が不明な四角形の2次元配列 Type.GetType("MyArray[,]")
1つの型引数を持つジェネリック型 Type.GetType("MyGenericType`1[MyType]")
2つの型引数を持つジェネリック型 Type.GetType("MyGenericType`2[MyType,AnotherType]")
2つのアセンブリ修飾型引数を持つジェネリック型 Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
アセンブリ修飾型引数を持つアセンブリ修飾ジェネリック型 Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
型引数が2つの型引数を持つジェネリック型であるジェネリック型。 Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")

こちらもご覧ください

適用対象

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

パラメーター

typeName
String

取得する型の名前。 typeResolver パラメーターを指定する場合は、typeResolver が解決できる任意の文字列を型名として使用できます。 assemblyResolver パラメーターを指定する場合、または標準の型解決を使用する場合は、typeName をアセンブリ修飾名にする必要があります (AssemblyQualifiedNameを参照)。ただし、現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll に型がある場合は、名前空間で修飾された型名を指定するだけで十分です。

assemblyResolver
Func<AssemblyName,Assembly>

で指定されたアセンブリを特定して返すメソッドtypeName. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 typeName にアセンブリの名前が含まれていない場合、assemblyResolver は呼び出されません。 assemblyResolver を指定しない場合は、標準のアセンブリ解決が実行されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。 渡した場合は、悪意のあるコードに対して特権が昇格される可能性があります。 指定したメソッドまたは使い慣れているメソッドだけを使用してください。

typeResolver
Func<Assembly,String,Boolean,Type>

typeName で指定された型を、assemblyResolver または標準のアセンブリ解決によって返されたアセンブリから特定して返すメソッド。 アセンブリが指定されていない場合は、typeResolver メソッドで指定できます。 このメソッドは、大文字と小文字を区別せずに検索を実行するかどうかを指定するパラメーターも受け取ります。そのパラメーターには false が渡されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。

戻り値

Type

指定された名前の型。型が見つからない場合は null

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

typeName が型名とアセンブリ名に解析される際にエラーが発生します (たとえば、単純な型名にエスケープされていない特殊文字が含まれている場合など)。

または typeName が、型引数の 1 つとしてポインター型、 ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

typeNameTypedReference の配列を表しています。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

または typeName に無効なアセンブリ名が含まれています。

または typeName が、型名のない有効なアセンブリ名です。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

現在読み込まれているバージョンよりも新しいバージョンの共通言語ランタイムで、アセンブリがコンパイルされました。

注釈

このメソッドの使用シナリオと、パラメーターとパラメーターの詳細については、メソッドのオーバーロードに関する説明を参照して assemblyResolver typeResolver GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) ください。

注意

typeNameが見つからない場合、メソッドの呼び出しは GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) を返し null ます。 例外はスローされません。 例外がスローされるかどうかを制御するには、 GetType パラメーターを持つメソッドのオーバーロードを呼び出し throwOnError ます。

このメソッドのオーバーロードを呼び出すことは、メソッドのオーバーロードを呼び出し、 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) false throwOnError パラメーターとパラメーターにを指定することと同じです ignoreCase

適用対象

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

型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。

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

パラメーター

typeName
String

取得する型の名前。 typeResolver パラメーターを指定する場合は、typeResolver が解決できる任意の文字列を型名として使用できます。 assemblyResolver パラメーターを指定する場合、または標準の型解決を使用する場合は、typeName をアセンブリ修飾名にする必要があります (AssemblyQualifiedNameを参照)。ただし、現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll に型がある場合は、名前空間で修飾された型名を指定するだけで十分です。

assemblyResolver
Func<AssemblyName,Assembly>

で指定されたアセンブリを特定して返すメソッドtypeName. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 typeName にアセンブリの名前が含まれていない場合、assemblyResolver は呼び出されません。 assemblyResolver を指定しない場合は、標準のアセンブリ解決が実行されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。 渡した場合は、悪意のあるコードに対して特権が昇格される可能性があります。 指定したメソッドまたは使い慣れているメソッドだけを使用してください。

typeResolver
Func<Assembly,String,Boolean,Type>

typeName で指定された型を、assemblyResolver または標準のアセンブリ解決によって返されたアセンブリから特定して返すメソッド。 アセンブリが指定されていない場合は、このメソッドで指定できます。 このメソッドは、大文字と小文字を区別せずに検索を実行するかどうかを指定するパラメーターも受け取ります。そのパラメーターには false が渡されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。

throwOnError
Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は null。 また、false を指定すると、一部の例外条件は抑制されますが、すべての例外が抑制されるわけではありません。 「例外」を参照してください。

戻り値

Type

指定した名前を持つ型。 型が見つからない場合、throwOnError パラメーターで null を返すか例外をスローするかを指定します。 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 「例外」を参照してください。

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

throwOnErrortrue です。型が見つかりません。

または throwOnErrortrue です。 typeName に埋め込まれたタブなどの正しくない文字が含まれています。 または throwOnErrortrue です。 typeName は空の文字列です。

または throwOnErrortrue です。 typeName は無効なサイズの配列型を表します。

または typeNameTypedReference の配列を表しています。

typeName が型名とアセンブリ名に解析される際にエラーが発生します (たとえば、単純な型名にエスケープされていない特殊文字が含まれている場合など)。

または throwOnErrortrue です。typeName に無効な構文 ("MyType[,*,]" など) が含まれています。

または typeName が、型引数の 1 つとしてポインター型、 ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。

または typeName に無効なアセンブリ名が含まれています。

または typeName が、型名のない有効なアセンブリ名です。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

現在読み込まれているバージョンよりも新しいバージョンの共通言語ランタイムで、アセンブリがコンパイルされました。

注釈

このメソッドの使用シナリオと、パラメーターとパラメーターの詳細については、メソッドのオーバーロードに関する説明を参照して assemblyResolver typeResolver GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) ください。

このメソッドオーバーロードの呼び出しは、メソッドオーバーロードを呼び出し、 GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) パラメーターにを指定することと同じです false ignoreCase

適用対象

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

大文字と小文字を区別せずに検索を実行するかどうか、および型が見つからない場合に例外をスローするかどうかを指定して、指定した名前の型を取得します。オプションとして、アセンブリおよび型を解決するカスタム メソッドを指定できます。

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

パラメーター

typeName
String

取得する型の名前。 typeResolver パラメーターを指定する場合は、typeResolver が解決できる任意の文字列を型名として使用できます。 assemblyResolver パラメーターを指定する場合、または標準の型解決を使用する場合は、typeName をアセンブリ修飾名にする必要があります (AssemblyQualifiedNameを参照)。ただし、現在実行されているアセンブリ内または mscorlib.dll/System.Private.CoreLib.dll に型がある場合は、名前空間で修飾された型名を指定するだけで十分です。

assemblyResolver
Func<AssemblyName,Assembly>

で指定されたアセンブリを特定して返すメソッドtypeName. assemblyResolver には、アセンブリ名が AssemblyName オブジェクトとして渡されます。 typeName にアセンブリの名前が含まれていない場合、assemblyResolver は呼び出されません。 assemblyResolver を指定しない場合は、標準のアセンブリ解決が実行されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。 渡した場合は、悪意のあるコードに対して特権が昇格される可能性があります。 指定したメソッドまたは使い慣れているメソッドだけを使用してください。

typeResolver
Func<Assembly,String,Boolean,Type>

typeName で指定された型を、assemblyResolver または標準のアセンブリ解決によって返されたアセンブリから特定して返すメソッド。 アセンブリが指定されていない場合は、このメソッドで指定できます。 このメソッドは、大文字小文字を区別せずに検索を実行するかどうかを指定するパラメーターも受け取ります。そのパラメーターには、ignoreCase の値が渡されます。

注意   不明な呼び出し元や信頼関係のない呼び出し元からのメソッドは渡さないようにしてください。

throwOnError
Boolean

型が見つからなかったときに例外をスローする場合は truefalse を返す場合は null。 また、false を指定すると、一部の例外条件は抑制されますが、すべての例外が抑制されるわけではありません。 「例外」を参照してください。

ignoreCase
Boolean

大文字と小文字を区別せずに true の検索を実行するには typeName。大文字と小文字を区別して false の検索を実行するには typeName

戻り値

Type

指定した名前を持つ型。 型が見つからない場合、throwOnError パラメーターで null を返すか例外をスローするかを指定します。 一部の場合は、throwOnError の値に関係なく、例外がスローされます。 「例外」を参照してください。

例外

typeNamenullです。

クラス初期化子が呼び出され、例外をスローします。

throwOnErrortrue です。型が見つかりません。

または throwOnErrortrue です。 typeName に埋め込まれたタブなどの正しくない文字が含まれています。 または throwOnErrortrue です。 typeName は空の文字列です。

または throwOnErrortrue です。 typeName は無効なサイズの配列型を表します。

または typeNameTypedReference の配列を表しています。

typeName が型名とアセンブリ名に解析される際にエラーが発生します (たとえば、単純な型名にエスケープされていない特殊文字が含まれている場合など)。

または throwOnErrortrue です。typeName に無効な構文 ("MyType[,*,]" など) が含まれています。

または typeName が、型引数の 1 つとしてポインター型、 ByRef 型、または Void を持つジェネリック型を表しています。

または typeName は型引数の数が正しくないジェネリック型を表します。

または typeName がジェネリック型を表し、型引数のいずれかが、対応する型パラメーターの制約を満たしていません。

throwOnErrortrue です。アセンブリ、またはその依存関係のうちの 1 つが見つかりませんでした。

アセンブリまたはその依存関係のうちの 1 つが見つかりましたが、読み込むことができませんでした。

または typeName に無効なアセンブリ名が含まれています。

または typeName が、型名のない有効なアセンブリ名です。

アセンブリまたはその依存関係のうちの 1 つが正しくありません。

または

現在読み込まれているバージョンよりも新しいバージョンの共通言語ランタイムで、アセンブリがコンパイルされました。

注釈

メソッドの既定の実装を、より柔軟な実装に置き換えるには、このメソッドオーバーロードと関連するオーバーロード ( と GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean) ) GetType を使用します。 型名とそれらを含むアセンブリの名前を解決する独自のメソッドを指定することで、次の操作を実行できます。

  • 型が読み込まれるアセンブリのバージョンを制御します。

  • アセンブリ名を含めない型名を検索する別の場所を指定します。

  • 部分アセンブリ名を使用してアセンブリを読み込む。

  • 共通言語ランタイム System.Type (CLR) によって作成されていない のサブクラスを返します。

たとえば、バージョン トレラントなシリアル化では、このメソッドを使用すると、部分名を使用して "最適な" アセンブリを検索できます。 メソッドの他のオーバーロード GetType には、バージョン番号を含むアセンブリ修飾型名が必要です。

型システムの代替実装では、CLR によって作成されない のサブクラスを返す必要がある場合があります。メソッドの他のオーバーロードによって返される型はすべてランタイム型 System.Type GetType です。

使用に関する注意事項

このメソッドオーバーロードと関連付けられたオーバーロードは、型の名前とアセンブリの名前を解析し、その名前 typeName を解決します。 型名はアセンブリのコンテキストで解決する必要があるため、アセンブリ名の解決は型名の解決前に行われます。

注意

アセンブリ修飾型名の概念に慣れていない場合は、 プロパティを参照 AssemblyQualifiedName してください。

typeName アセンブリ修飾名ではない場合、アセンブリの解決はスキップされます。 非修飾型名は、mscorlib.dll/System.Private.CoreLib.dll または現在実行中のアセンブリのコンテキストで解決できます。または、必要に応じて、 パラメーターでアセンブリを指定 typeResolver することもできます。 さまざまな種類の名前解決に対してアセンブリ名を含めたり省略したりした場合の効果は、混合名前解決セクションのテーブル として表示 されます。

一般的な使用に関する注意事項:

  • 不明な呼び出し元または信頼されていない呼び出し元からメソッドを渡したり、メソッドを assemblyResolver typeResolver 渡したりしない。 指定したメソッドまたは使い慣れているメソッドだけを使用してください。

    注意事項

    不明な呼び出し元または信頼されていない呼び出し元のメソッドを使用すると、悪意のあるコードの特権が昇格される可能性があります。

  • パラメーターまたは パラメーターを省略した場合、パラメーターの値は、既定の解決を実行 assemblyResolver typeResolver するメソッド throwOnError に渡されます。

  • throwOnErrortrue 場合、このメソッドは を返す場合は をスローし、 は TypeLoadException typeResolver null FileNotFoundException を返 assemblyResolver します null

  • このメソッドは、 と によってスローされた例外をキャッチ assemblyResolver しません typeResolver 。 リゾルバー メソッドによってスローされる例外については、お客様が責任を負います。

アセンブリの解決

メソッド assemblyResolver は、 に含まれる文字列アセンブリ名を解析することで生成される AssemblyName オブジェクトを受け取ります typeName 。 に typeName アセンブリ名が含まれている場合、 assemblyResolver は呼び出されません。 null が に渡されます typeResolver

assemblyResolver 指定されていない場合は、アセンブリの検索に標準アセンブリ のプローブが使用されます。 が指定されている場合、メソッドは標準のプローブ処理を行う必要があります。その場合は、渡すすべてのアセンブリを 確実に処理できる assemblyResolver GetType assemblyResolver 必要があります。

アセンブリ assemblyResolver を解決できない null 場合、 メソッドは を返す必要があります。 がを返す場合は が呼び出され、それ以上の処理は行われません。さらに、 が の場合 assemblyResolver nulltypeResolver throwOnError true FileNotFoundException がスローされます。

に渡 AssemblyName される が部分名の場合、その 1 つ以上 assemblyResolver の部分は です null 。 たとえば、バージョンがない場合、 プロパティは Version です null 。 プロパティ、プロパティ、およびメソッドのすべてが を返す場合は、アセンブリの単純な名前 Version CultureInfo GetPublicKeyToken null だけが指定されました。 メソッド assemblyResolver は、アセンブリ名のすべての部分を使用または無視できます。

単純型名とアセンブリ修飾型名の場合、さまざまなアセンブリ解決オプションの効果が [混合名解決] セクションにテーブルとして表示されます。

型の解決

typeName アセンブリ名を指定しない場合、 typeResolver は常に呼び出されます。 が typeName アセンブリ名を指定する場合、 typeResolver はアセンブリ名が正常に解決された場合にのみ呼び出されます。 または assemblyResolver 標準アセンブリのプローブが を返す場合 null typeResolver 、 は呼び出されません。

メソッド typeResolver は、次の 3 つの引数を受け取ります。

  • 検索するアセンブリ。 null アセンブリ typeName 名が含まれている場合は 。

  • 型の単純な名前。 入れ子にされた型の場合、これは最も外側の格納型です。 ジェネリック型の場合、これはジェネリック型の単純名です。

  • 型名の大文字 true と小文字の区別を無視する場合のブール値。

実装によって、これらの引数の使用方法が決定されます。 メソッド typeResolver は、型を null 解決できない場合は を返す必要があります。 が typeResolver を返 null し、 が throwOnError true の場合、 のこのオーバーロードは GetType をスローします TypeLoadException

単純型名とアセンブリ修飾型名の場合、さまざまな型解決オプションの効果が[混合名前解決] セクションにテーブルとして表示されます。

入れ子になった型の解決

typeName 入れ子にされた型の場合、最も外側の格納型の名前だけが に渡されます typeResolvertypeResolverがこの型を返すと GetNestedType 、最も内側の入れ子にされた型が解決されるまで、メソッドは再帰的に呼び出されます。

ジェネリック型の解決

は、ジェネリック型を GetType 解決するために再帰的に呼び出されます。最初にジェネリック型自体を解決してから、その型引数を解決します。 型引数がジェネリックの場合は、 GetType 型引数を解決するために再帰的に呼び出されます。

指定するとの組み合わせによって、 assemblyResolver typeResolver この再帰のすべてのレベルを解決できる必要があります。 たとえば、の読み込みを制御するを指定したとし assemblyResolver MyAssembly ます。 ジェネリック型 (Visual Basic) を解決するとし Dictionary<string, MyType> Dictionary(Of String, MyType) ます。 次のジェネリック型名を渡すことができます。

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

MyTypeはアセンブリ修飾型引数のみであることに注意してください。 Dictionary<TKey,TValue>クラスとクラスの名前 String は、アセンブリ修飾されていません。 typeResolverは、アセンブリまたはのいずれかを処理できる必要があり null ます。これは、とに対してを受け取るため null Dictionary<TKey,TValue> String です。 このような場合は、文字列を受け取るメソッドのオーバーロードを呼び出すことによって処理できます。これは、 GetType 非修飾型名の両方が mscorlib.dll/System.Private.CoreLib.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この型名はアセンブリ修飾されていないため、ディクショナリ型および文字列型に対してメソッドは呼び出されません。

ここで、の代わりに、 System.String 最初のジェネリック引数の型がであるとし YourType YourAssembly ます。

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

このアセンブリは mscorlib.dll/System.Private.CoreLib.dll でも、現在実行されているアセンブリでもないため、 YourType アセンブリ修飾名を指定しないで解決することはできません。 assemblyResolveは再帰的に呼び出されるため、この場合は処理できる必要があります。 null以外のアセンブリを返す代わり MyAssembly に、指定されたオブジェクトを使用してアセンブリの読み込みが実行されるようになりました AssemblyName

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

使用状況のメモ」に戻ります。

型名の解決 (特殊文字を使用した)

アセンブリ修飾名では、特定の文字が特別な意味を持ちます。 単純型名にこれらの文字が含まれている場合、単純名がアセンブリ修飾名の一部であると、文字によって解析エラーが発生します。 解析エラーを回避するには、アセンブリ修飾名をメソッドに渡す前に、円記号を使用して特殊文字をエスケープする必要があり GetType ます。 たとえば、型にという名前が付けられている場合は、のように、 Strange]Type 角かっこの前にエスケープ文字を追加する必要があり Strange\]Type ます。

注意

このような特殊文字を持つ名前は Visual Basic または C# で作成することはできませんが、Microsoft 中間言語 (MSIL) を使用して作成することも、動的アセンブリを出力することによって作成することもできます。

次の表は、型名の特殊文字を示しています。

文字 説明
, 傍点 アセンブリ修飾名の区切り記号。
[] (角かっこ) サフィックスペアとして、は配列型を示します。区切り記号のペアとして、ジェネリック引数リストとアセンブリ修飾名を囲みます。
& (アンパサンド) サフィックスとして、型が参照型であることを示します。
* アスタリスク サフィックスとして、型がポインター型であることを示します。
+ 入れ子にされた型の区切り記号。
\ エスケープ文字。

などのプロパティは AssemblyQualifiedName 、正しくエスケープされた文字列を返します。 正しくエスケープされた文字列をメソッドに渡す必要があり GetType ます。 さらに、メソッドは、正しくエスケープされた GetType 名前を typeResolver 、既定の型解決メソッドに渡します。 名前をエスケープ解除された名前と比較する必要がある場合は typeResolver 、エスケープ文字を削除する必要があります。

使用状況のメモ」に戻ります。

混合名前解決

次の表は assemblyResolvertypeResolver の型名とアセンブリ名のすべての組み合わせについて、、、および既定の名前解決の間の相互作用をまとめたもの typeName です。

型名の内容 アセンブリリゾルバーメソッド 型リゾルバーメソッド 結果
型、アセンブリ null null メソッドオーバーロードの呼び出しと同じです Type.GetType(String, Boolean, Boolean)
型、アセンブリ 指示 null assemblyResolver アセンブリを返すか null 、アセンブリを解決できない場合はを返します。 アセンブリが解決された場合は、メソッドのオーバーロードを使用して Assembly.GetType(String, Boolean, Boolean) アセンブリから型が読み込まれます。それ以外の場合は、型の解決は試行されません。
型、アセンブリ null 指示 アセンブリ名をオブジェクトに変換し、 AssemblyName メソッドオーバーロードを呼び出してアセンブリを取得することと同じです Assembly.Load(AssemblyName) 。 アセンブリが解決された場合は、に渡され typeResolver ます。それ以外の場合 typeResolver は、が呼び出されず、型をさらに解決しようとすることはありません。
型、アセンブリ 指示 指示 assemblyResolver アセンブリを返すか null 、アセンブリを解決できない場合はを返します。 アセンブリが解決された場合は、に渡され typeResolver ます。それ以外の場合 typeResolver は、が呼び出されず、型をさらに解決しようとすることはありません。
type null (指定) null メソッドオーバーロードの呼び出しと同じです Type.GetType(String, Boolean, Boolean) 。 アセンブリ名が指定されていないため、mscorlib.dll/System.Private.CoreLib.dll と現在実行中のアセンブリのみが検索されます。 を assemblyResolver 指定した場合は無視されます。
type null (指定) 指示 typeResolver が呼び出され、 null アセンブリのが渡されます。 typeResolver は、任意のアセンブリから型を提供できます。これには、その目的のために読み込まれるアセンブリも含まれます。 を assemblyResolver 指定した場合は無視されます。
アセンブリ null (指定) null (指定) アセンブリ FileLoadException 名がアセンブリ修飾型名であるかのように解析されるため、がスローされます。 これにより、無効なアセンブリ名が生成されます。

に戻る: 使用状況に関するメモアセンブリの解決型の解決

適用対象