Type.GetType メソッドとは? わかりやすく解説

Type.GetType メソッド (String, Boolean, Boolean)

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

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Function GetType
 ( _
    typeName As String, _
    throwOnError As Boolean, _
    ignoreCase As Boolean _
) As Type
Dim typeName As String
Dim throwOnError As Boolean
Dim ignoreCase As Boolean
Dim returnValue As Type

returnValue = Type.GetType(typeName, throwOnError, ignoreCase)
public static Type GetType (
    string typeName,
    bool throwOnError,
    bool ignoreCase
)
public:
static Type^ GetType (
    String^ typeName, 
    bool throwOnError, 
    bool ignoreCase
)
public static Type GetType (
    String typeName, 
    boolean throwOnError, 
    boolean ignoreCase
)
public static function GetType
 (
    typeName : String, 
    throwOnError : boolean, 
    ignoreCase : boolean
) : Type

パラメータ

typeName

取得する AssemblyQualifiedName の名前。

throwOnError

型が見つからなかったときに例外スローする場合truenull 参照 (Visual Basic では Nothing) を返す場合false

ignoreCase

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

戻り値
存在する場合は、指定した名前を持つ Typeそれ以外場合null 参照 (Visual Basic では Nothing)。

例外例外
例外種類条件

ArgumentNullException

typeNamenull 参照 (Visual Basic では Nothing) です。

TargetInvocationException

クラス初期化子呼び出され例外スローしました

TypeLoadException

throwOnErrortrue であり、型は見つかりません。

または

typeName は、TypedReference の配列表します。これは、.NET Framework Version 1.0 および 1.1 における null 参照返すための動作からの変更です。

ArgumentException

typeName無効です。たとえば、無効な文字含まれているか、長さが 0 の文字列です。

解説解説

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

動的モジュールGetType使用するには、AppDomain.AssemblyResolve イベントサブスクライブし、保存する前に GetType呼び出します。保存する前に呼び出さないと、メモリ2 つコピー作成されることになります

throwOnError パラメータは、型が見つからなかった場合動作にのみ影響しますスローされる可能性のあるその他の例外には影響しません。特に、型が見つかって読み込むことができない場合は、throwOnErrorfalse であっても TypeLoadExceptionスローさます。

要求された型がパブリックではなく呼び出し元に現在のアセンブリ外の非パブリック オブジェクトリフレクションするための ReflectionPermission がない場合、このメソッドnull 参照 (Visual Basic では Nothing) を返します

型に対すリフレクション時に Get メソッドによって返される基本クラスメンバ次の表に示します

  1. 名前と署名による隠ぺいでは、カスタム修飾子戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約含めて署名すべての部分判断対象となります。これはバイナリ比較です。

  2. リフレクション場合プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスget アクセサset アクセサ両方を持つプロパティがあり、派生クラスには get アクセサしかない場合派生クラスプロパティにより基本クラスプロパティ隠ぺいされ、基本クラスset アクセサにはアクセスできません。

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

使用できるクラステーブル事前に読み込まれていない限り配列COM 型は検索対象になりません。

typeName には、単純型名名前空間を含む型名、またはアセンブリ名指定を含む複合名指定できます

typeNameType の名前だけが含まれている場合、このメソッド最初に呼び出し元のオブジェクトアセンブリで検索行い次に mscorlib.dll アセンブリで検索行いますtypeName部分アセンブリ名または完全アセンブリ名で完全修飾されている場合、このメソッド指定されアセンブリで検索行います

AssemblyQualifiedName は、入れ子にされた型アセンブリ名、および型引数を含む完全修飾型名返すことができます入れ子になったクラスに対して共通言語ランタイムサポートするすべてのコンパイラ簡易名を生成しリフレクションが、照会されたときに次の規則に従って完全限定名を生成します

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

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

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

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

"++" は "\+\+"、"\" は "\\" となります

この完全限定名は永続化でき、後で Type読み込むために使用できますType検索して読み込むには、型名だけ、またはアセンブリ修飾型名いずれか指定して GetType使用します型名だけを指定して GetType使用した場合は、呼び出し元のアセンブリType だけが検索され次に System アセンブリ検索されます。アセンブリ修飾型名指定して GetType使用した場合は、任意のアセンブリ内の Type検索されます。

型名末尾には、その型に関する追加情報を示す文字追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字追加できますこのような末尾文字除いて型名だけを取得するには、t.GetElementType().ToString()使用しますt が型を示します

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

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

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

型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこ囲みます。囲まなかった場合アセンブリ修飾名の各部分を区切るコンマ追加区切り型引数として解釈されます。たとえば、型 Stringキーを持つ、MyAssembly.dll からの MyTypeDictionary は、次のように指定できます

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

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

さまざまな種類GetType使用する構文次の表に示します

取得対象

使用方法

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[*,*]") または 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]]")

Windows Mobile for Pocket PCWindows Mobile for SmartphoneWindows CE プラットフォームメモ : ignoreCase パラメータサポートされていないため、false設定する必要があります

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
String クラス
TypeLoadException
ReflectionPermission
AssemblyQualifiedName
GetAssembly
GetType
AssemblyName
その他の技術情報
完全修飾型名指定

Type.GetType メソッド (String, Boolean)

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

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Function GetType
 ( _
    typeName As String, _
    throwOnError As Boolean _
) As Type
Dim typeName As String
Dim throwOnError As Boolean
Dim returnValue As Type

returnValue = Type.GetType(typeName, throwOnError)

パラメータ

typeName

取得する AssemblyQualifiedName の名前。

throwOnError

型が見つからなかったときに例外スローする場合truenull 参照 (Visual Basic では Nothing) を返す場合false

戻り値
存在する場合は、指定した名前を持つ Typeそれ以外場合null 参照 (Visual Basic では Nothing)。

例外例外
例外種類条件

ArgumentNullException

typeNamenull 参照 (Visual Basic では Nothing) です。

TargetInvocationException

クラス初期化子呼び出され例外スローしました

TypeLoadException

throwOnErrortrue であり、型は見つかりません。

または

typeName は、TypedReference の配列表します。これは、.NET Framework Version 1.0 および 1.1 における null 参照返すための動作からの変更です。

ArgumentException

typeName無効です。たとえば、無効な文字含まれているか、長さが 0 の文字列です。

解説解説

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

動的モジュールGetType使用するには、AppDomain.AssemblyResolve イベントサブスクライブし、保存する前に GetType呼び出します。保存する前に呼び出さないと、メモリ2 つコピー作成されることになります

throwOnError パラメータは、型が見つからなかった場合動作にのみ影響しますスローされる可能性のあるその他の例外には影響しません。特に、型が見つかって読み込むことができない場合は、throwOnErrorfalse であっても TypeLoadExceptionスローさます。

要求された型がパブリックではなく呼び出し元に現在のアセンブリ外の非パブリック オブジェクトリフレクションするための ReflectionPermission がない場合、このメソッドnull 参照 (Visual Basic では Nothing) を返します

型に対すリフレクション時に Get メソッドによって返される基本クラスメンバ次の表に示します

  1. 名前と署名による隠ぺいでは、カスタム修飾子戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約含めて署名すべての部分判断対象となります。これはバイナリ比較です。

  2. リフレクション場合プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスget アクセサset アクセサ両方を持つプロパティがあり、派生クラスには get アクセサしかない場合派生クラスプロパティにより基本クラスプロパティ隠ぺいされ、基本クラスset アクセサにはアクセスできません。

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

使用できるクラステーブル事前に読み込まれていない限り配列COM 型は検索対象になりません。

typeName には、単純型名名前空間を含む型名、またはアセンブリ名指定を含む複合名指定できます

typeNameType の名前だけが含まれている場合、このメソッド最初に呼び出し元のオブジェクトアセンブリで検索行い次に mscorlib.dll アセンブリで検索行いますtypeName部分アセンブリ名または完全アセンブリ名で完全修飾されている場合、このメソッド指定されアセンブリで検索行います

AssemblyQualifiedName は、入れ子にされた型アセンブリ名、および汎用引数を含む完全修飾型名返すことができます入れ子になったクラスに対して共通言語ランタイムサポートするすべてのコンパイラ簡易名を生成しリフレクションが、照会されたときに次の規則に従って完全限定名を生成します

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

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

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

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

"++" は "\+\+"、"\" は "\\" となります

この完全限定名は永続化でき、後で Type読み込むために使用できますType検索して読み込むには、型名だけ、またはアセンブリ修飾型名いずれか指定して GetType使用します型名だけを指定して GetType使用した場合は、呼び出し元のアセンブリType だけが検索され次に System アセンブリ検索されます。アセンブリ修飾型名指定して GetType使用した場合は、任意のアセンブリ内の Type検索されます。

型名末尾には、その型に関する追加情報を示す文字追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字追加できますこのような末尾文字除いて型名だけを取得するには、t.GetElementType().ToString()使用しますt が型を示します

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

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

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

型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこ囲みます。囲まなかった場合アセンブリ修飾名の各部分を区切るコンマ追加区切り型引数として解釈されます。たとえば、型 Stringキーを持つ、MyAssembly.dll からの MyTypeDictionary は、次のように指定できます

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

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

さまざまな種類GetType使用する構文次の表に示します

取得対象

使用方法

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[*,*]") または 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]]")

使用例使用例

System.Int32 の型を取得し、その型オブジェクト使用してSystem.Int32FullName プロパティ表示する例を次に示します。型オブジェクト存在しないアセンブリ参照している場合、この例では例外スローさます。

Imports System
Namespace MyTypeNameSpace
    Class MyClass1
        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)
                ' 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(e.Message.ToString())
            Catch e As Exception
                Console.WriteLine(e.Message.ToString())
            End Try
        End Sub 'Main
    End Class 'MyClass1
End Namespace 'MyTypeNameSpace
using System;
namespace MyTypeNameSpace
{
    class MyClass
    {
        public static void
 Main(string[] arg)
        {
            try
            {
                // Get the type of a specified class.
                Type myType1 = Type.GetType("System.Int32");
                Console.WriteLine("The full name is {0}.", myType1.FullName);
                // 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(e.Message);
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
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}.", myType1->FullName
 );
      
      // 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( e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

package MyTypeNameSpace; 

import System.*;

class MyClass
{
    public static void main(String[]
 args)
    {
        try {
            // Get the type of a specified class.
            Type myType1 = Type.GetType("System.Int32");
            Console.WriteLine("The full name is {0}.", myType1.get_FullName());

            // 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.get_FullName());
        }
        catch (TypeLoadException e) {
            Console.WriteLine(e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine(e.get_Message());
        }
    } //main
} //MyClass
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
String クラス
TypeLoadException
ReflectionPermission
AssemblyQualifiedName
GetAssembly
GetType
AssemblyName
その他の技術情報
完全修飾型名指定

Type.GetType メソッド


Type.GetType メソッド (String)

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

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

typeNamenull 参照 (Visual Basic では Nothing) です。

TargetInvocationException

クラス初期化子呼び出され例外スローしました

ArgumentException

typeName無効です。たとえば、無効な文字含まれているか、長さが 0 の文字列です。

TypeLoadException

typeName は、TypedReference の配列表します。これは、.NET Framework Version 1.0 および 1.1 における null 参照返すための動作からの変更です。

解説解説

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

動的モジュールGetType使用するには、AppDomain.AssemblyResolve イベントサブスクライブし、保存する前に GetType呼び出します。保存する前に呼び出さないと、メモリ2 つコピー作成されることになります

要求された型がパブリックではなく呼び出し元に現在のアセンブリ外の非パブリック オブジェクトリフレクションするための ReflectionPermission がない場合、このメソッドnull 参照 (Visual Basic では Nothing) を返します

型に対すリフレクション時に Get メソッドによって返される基本クラスメンバ次の表に示します

  1. 名前と署名による隠ぺいでは、カスタム修飾子戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約含めて署名すべての部分判断対象となります。これはバイナリ比較です。

  2. リフレクション場合プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスget アクセサset アクセサ両方を持つプロパティがあり、派生クラスには get アクセサしかない場合派生クラスプロパティにより基本クラスプロパティ隠ぺいされ、基本クラスset アクセサにはアクセスできません。

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

使用できるクラステーブル事前に読み込まれていない限り配列COM 型は検索対象になりません。

typeName には、単純型名名前空間を含む型名、またはアセンブリ名指定を含む複合名指定できます

typeNameType の名前だけが含まれている場合、このメソッド最初に呼び出し元のオブジェクトアセンブリで検索行い次に mscorlib.dll アセンブリで検索行いますtypeName部分アセンブリ名または完全アセンブリ名で完全限定されている場合、このメソッド指定されアセンブリで検索行います

AssemblyQualifiedName は、入れ子にされた型アセンブリ名、およびジェネリック型引数を含む完全修飾型名返すことができます入れ子になったクラスに対して共通言語ランタイムサポートするすべてのコンパイラ簡易名を生成しリフレクションが、照会されたときに次の規則に従って完全限定名を生成します

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

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

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

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

"++" は "\+\+"、"\" は "\\" となります

この完全限定名は永続化でき、後で Type読み込むために使用できますType検索して読み込むには、型名だけ、またはアセンブリ修飾型名いずれか指定して GetType使用します型名だけを指定して GetType使用した場合は、呼び出し元のアセンブリType だけが検索され次に System アセンブリ検索されます。アセンブリ修飾型名指定して GetType使用した場合は、任意のアセンブリ内の Type検索されます。

型名末尾には、その型に関する追加情報を示す文字追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字追加できますこのような末尾文字除いて型名だけを取得するには、t.GetElementType().ToString()使用しますt が型を示します

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

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

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

型引数リスト内のアセンブリ修飾型を指定するには、アセンブリ修飾型を角かっこ囲みます。囲まなかった場合アセンブリ修飾名の各部分を区切るコンマ追加区切り型引数として解釈されます。たとえば、型 Stringキーを持つ、MyAssembly.dll からの MyTypeDictionary は、次のように指定できます

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

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

さまざまな種類GetType使用する構文次の表に示します

取得対象

使用方法

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[*,*]") または 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]]")

使用例使用例

System.Int32 の型を取得し、その型オブジェクト使用してSystem.Int32FullName プロパティ表示する例を次に示します

Imports System
Namespace MyTypeNameSpace
    Class MyClass1
        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)
                ' 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(e.Message.ToString())
            Catch e As Exception
                Console.WriteLine(e.Message.ToString())
            End Try
        End Sub 'Main
    End Class 'MyClass1
End Namespace 'MyTypeNameSpace
using System;
namespace MyTypeNameSpace
{
    class MyClass
    {
        public static void
 Main(string[] arg)
        {
            try
            {
                // Get the type of a specified class.
                Type myType1 = Type.GetType("System.Int32");
                Console.WriteLine("The full name is {0}.", myType1.FullName);
                // 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(e.Message);
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
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}.", myType1->FullName
 );
      
      // 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( e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

package MyTypeNameSpace; 

import System.*;

class MyClass
{
    public static void main(String[]
 args)
    {
        try {
            // Get the type of a specified class.
            Type myType1 = Type.GetType("System.Int32");
            Console.WriteLine("The full name is {0}.", myType1.get_FullName());

            // 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.get_FullName());
        }
        catch (TypeLoadException e) {
            Console.WriteLine(e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine(e.get_Message());
        }
    } //main
} //MyClass
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
String クラス
TypeLoadException
ReflectionPermission
AssemblyQualifiedName
GetAssembly
GetType
AssemblyName
その他の技術情報
完全修飾型名指定

Type.GetType メソッド ()

現在の Type取得します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_Type.GetType メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

COM オブジェクトに、Type.GetType メソッドへのバージョン依存しないアクセス用意されています。

このメソッドは、CLS準拠していません。  

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Type.GetType メソッド」の関連用語

Type.GetType メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Type.GetType メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS