Type.AssemblyQualifiedName プロパティ

定義

Type オブジェクトの読み込み元であるアセンブリの名前を含む型のアセンブリ修飾名を取得します。Gets the assembly-qualified name of the type, which includes the name of the assembly from which this Type object was loaded.

public:
 abstract property System::String ^ AssemblyQualifiedName { System::String ^ get(); };
public abstract string AssemblyQualifiedName { get; }
member this.AssemblyQualifiedName : string
Public MustOverride ReadOnly Property AssemblyQualifiedName As String

プロパティ値

Type の読み込み元であるアセンブリの名前を含む、Type のアセンブリ修飾名。現在のインスタンスがジェネリック型パラメーターを表す場合は nullThe assembly-qualified name of the Type, which includes the name of the assembly from which the Type was loaded, or null if the current instance represents a generic type parameter.

実装

次の例では、クラスに関連付けられているアセンブリ名と、その型の完全修飾名を表示します。The following example displays the assembly name associated with the class and the fully qualified name of the type.

using namespace System;
using namespace System::Reflection;
int main()
{
   Type^ objType = System::Array::typeid;
   
   // Print the full assembly name.
   Console::WriteLine( "Full assembly name: {0}.", objType->Assembly->FullName );
   
   // Print the qualified assembly name.
   Console::WriteLine( "Qualified assembly name: {0}.", objType->AssemblyQualifiedName );
}
// The example displays the following output if run under the .NET Framework 4.5:
//    Full assembly name:
//       mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
//    Qualified assembly name:
//       System.Array, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
using System;

class MyAssemblyClass
{
    public static void Main()
    {
        Type objType = typeof(Array);

        // Print the assembly full name.
        Console.WriteLine($"Assembly full name:\n   {objType.Assembly.FullName}.");

        // Print the assembly qualified name.
        Console.WriteLine($"Assembly qualified name:\n   {objType.AssemblyQualifiedName}.");
    }
}
// The example displays the following output if run under the .NET Framework 4.5:
//    Assembly full name:
//       mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
//    Assembly qualified name:
//       System.Array, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
Class Example
    Public Shared Sub Main()
        Dim objType As Type = GetType(Array)

        ' Display the assembly full name.
        Console.WriteLine($"Assembly full name:{vbCrLf}   {objType.Assembly.FullName}.")

        ' Display the assembly qualified name.
        Console.WriteLine($"Assembly qualified name:{vbCrLf}   {objType.AssemblyQualifiedName}.")
    End Sub
End Class
' The example displays the following output if run under the .NET Framework 4.5:
'    Assembly full name:
'       mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
'    Assembly qualified name:
'       System.Array, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

次の例では、ToString メソッドによって返される文字列と、NameFullName、および AssemblyQualifiedName プロパティを比較します。The following example compares the strings returned by the ToString method and the Name, FullName, and AssemblyQualifiedName properties.

using System;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
    public static void Main()
    {
        Type t = typeof(String);
        ShowTypeInfo(t);

        t = typeof(List<>);
        ShowTypeInfo(t);

        var list = new List<String>();
        t = list.GetType();
        ShowTypeInfo(t);

        Object v = 12;
        t = v.GetType();
        ShowTypeInfo(t);

        t = typeof(IFormatProvider);
        ShowTypeInfo(t);

        IFormatProvider ifmt = NumberFormatInfo.CurrentInfo;
        t = ifmt.GetType();
        ShowTypeInfo(t);
    }

    private static void ShowTypeInfo(Type t)
    {
        Console.WriteLine($"Name: {t.Name}");
        Console.WriteLine($"Full Name: {t.FullName}");
        Console.WriteLine($"ToString:  {t}");
        Console.WriteLine($"Assembly Qualified Name: {t.AssemblyQualifiedName}");
        Console.WriteLine();
    }
}
// The example displays output like the following:
//    Name: String
//    Full Name: System.String
//    ToString:  System.String
//    Assembly Qualified Name: System.String, mscorlib, Version=4.0.0.0, Culture=neutr
//    al, PublicKeyToken=b77a5c561934e089
//
//    Name: List`1
//    Full Name: System.Collections.Generic.List`1
//    ToString:  System.Collections.Generic.List`1[T]
//    Assembly Qualified Name: System.Collections.Generic.List`1, mscorlib, Version=4.
//    0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: List`1
//    Full Name: System.Collections.Generic.List`1[[System.String, mscorlib, Version=4
//    .0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
//    ToString:  System.Collections.Generic.List`1[System.String]
//    Assembly Qualified Name: System.Collections.Generic.List`1[[System.String, mscor
//    lib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorl
//    ib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: Int32
//    Full Name: System.Int32
//    ToString:  System.Int32
//    Assembly Qualified Name: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutra
//    l, PublicKeyToken=b77a5c561934e089
//
//    Name: IFormatProvider
//    Full Name: System.IFormatProvider
//    ToString:  System.IFormatProvider
//    Assembly Qualified Name: System.IFormatProvider, mscorlib, Version=4.0.0.0, Cult
//    ure=neutral, PublicKeyToken=b77a5c561934e089
//
//    Name: NumberFormatInfo
//    Full Name: System.Globalization.NumberFormatInfo
//    ToString:  System.Globalization.NumberFormatInfo
//    Assembly Qualified Name: System.Globalization.NumberFormatInfo, mscorlib, Versio
//    n=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Collections.Generic
Imports System.Globalization

Module Example
    Public Sub Main()
        Dim t As Type = GetType(String)
        ShowTypeInfo(t)

        t = GetType(List(Of))
        ShowTypeInfo(t)

        Dim list As New List(Of String)()
        t = list.GetType()
        ShowTypeInfo(t)

        Dim v As Object = 12
        t = v.GetType()
        ShowTypeInfo(t)

        t = GetType(IFormatProvider)
        ShowTypeInfo(t)

        Dim ifmt As IFormatProvider = NumberFormatInfo.CurrentInfo
        t = ifmt.GetType()
        ShowTypeInfo(t)
    End Sub

    Private Sub ShowTypeInfo(t As Type)
        Console.WriteLine($"Name: {t.Name}")
        Console.WriteLine($"Full Name: {t.FullName}")
        Console.WriteLine($"ToString:  {t}")
        Console.WriteLine($"Assembly Qualified Name: {t.AssemblyQualifiedName}")
        Console.WriteLine()
    End Sub
End Module
' The example displays output like the following:
'    Name: String
'    Full Name: System.String
'    ToString:  System.String
'    Assembly Qualified Name: System.String, mscorlib, Version=4.0.0.0, Culture=neutr
'    al, PublicKeyToken=b77a5c561934e089
'
'    Name: List`1
'    Full Name: System.Collections.Generic.List`1
'    ToString:  System.Collections.Generic.List`1[T]
'    Assembly Qualified Name: System.Collections.Generic.List`1, mscorlib, Version=4.
'    0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
'
'    Name: List`1
'    Full Name: System.Collections.Generic.List`1[[System.String, mscorlib, Version=4
'    .0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
'    ToString:  System.Collections.Generic.List`1[System.String]
'    Assembly Qualified Name: System.Collections.Generic.List`1[[System.String, mscor
'    lib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorl
'    ib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
'
'    Name: Int32
'    Full Name: System.Int32
'    ToString:  System.Int32
'    Assembly Qualified Name: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutra
'    l, PublicKeyToken=b77a5c561934e089
'
'    Name: IFormatProvider
'    Full Name: System.IFormatProvider
'    ToString:  System.IFormatProvider
'    Assembly Qualified Name: System.IFormatProvider, mscorlib, Version=4.0.0.0, Cult
'    ure=neutral, PublicKeyToken=b77a5c561934e089
'
'    Name: NumberFormatInfo
'    Full Name: System.Globalization.NumberFormatInfo
'    ToString:  System.Globalization.NumberFormatInfo
'    Assembly Qualified Name: System.Globalization.NumberFormatInfo, mscorlib, Versio
'    n=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

注釈

型のアセンブリ修飾名は、名前空間を含む型名とその後に続くコンマ、およびアセンブリの表示名で構成されます。The assembly-qualified name of a type consists of the type name, including its namespace, followed by a comma, followed by the display name of the assembly. アセンブリの表示名は、Assembly.FullName プロパティを使用して取得されます。The display name of an assembly is obtained using the Assembly.FullName property.

注意

.NET Framework バージョン2.0 では、プロセッサアーキテクチャがアセンブリ id に追加され、アセンブリ名文字列の一部として指定できるようになりました。In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. たとえば、"ProcessorArchitecture = msil" のようになります。For example, "ProcessorArchitecture=msil". ただし、互換性上の理由から、AssemblyQualifiedName プロパティによって返される文字列には含まれません。However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. 以下を参照してください。AssemblyName.ProcessorArchitectureSee AssemblyName.ProcessorArchitecture.

共通言語ランタイムをサポートするすべてのコンパイラは、入れ子になったクラスの簡易名を出力します。リフレクションは、次の規則に従って、クエリを実行すると、破損した名前を生成します。All compilers that support the common language runtime emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

DelimiterDelimiter 説明Meaning
円記号 (\)Backslash (\) エスケープ文字。Escape character.
コンマ (,)Comma (,) アセンブリ名の前に指定します。Precedes the Assembly name.
プラス記号 (+)Plus sign (+) 入れ子になったクラスの前に置きます。Precedes a nested class.
ピリオド (.)Period (.) 名前空間識別子を表します。Denotes namespace identifiers.
角かっこ ([])Brackets ([]) 型名の後には、その型の配列を示します。After a type name, denotes an array of that type.

- または --or-

ジェネリック型の場合は、ジェネリック型引数リストを囲みます。For a generic type, encloses the generic type argument list.

- または --or-

型引数リスト内で、アセンブリ修飾型を囲みます。Within a type argument list, encloses an assembly-qualified type.

たとえば、クラスのアセンブリ修飾名は次のようになります。For example, the assembly-qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089  

名前空間にプラス記号 (TopNamespace. Sub + Namespace など) が含まれている場合、プラス記号 (+) の前にエスケープ文字 (\) があるため、入れ子の区切り記号として解釈されません。If the namespace contained a plus sign, for example TopNamespace.Sub+Namespace, then the plus sign (+) would be preceded by an escape character (\) to prevent it from being interpreted as a nesting separator. リフレクションは、この文字列を次のように出力します。Reflection would emit this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089   

"+ +" は "\+\+" になり、"\" は "\\" になります。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.

ジェネリック型のジェネリック引数自体は、アセンブリ名によって修飾されます。Generic arguments of generic types are themselves qualified by assembly name. たとえば、MyGenericClass<int> (Visual Basic のMyGenericClass(Of Integer)) のアセンブリ修飾型名では、intInt32のアセンブリ修飾型名に拡張されます。For example, in the assembly-qualified type name for MyGenericClass<int> (MyGenericClass(Of Integer) in Visual Basic), int is expanded to the assembly-qualified type name for Int32.

現在の Type オブジェクトがジェネリックパラメーターを表している場合、このプロパティは nullを返します。If the current Type object represents a generic parameter, this property returns null.

適用対象

こちらもご覧ください