Type.AssemblyQualifiedName Type.AssemblyQualifiedName Type.AssemblyQualifiedName Type.AssemblyQualifiedName Property

정의

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의 어셈블리 한정 이름입니다. 현재 인스턴스가 제네릭 형식 매개 변수를 나타낼 경우에는 null입니다.The 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.
Imports System

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 메서드 및 Name, FullName, 및 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
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.ProcessorArchitecture을 참조하세요.See 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.

구분 기호Delimiter 의미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> (MyGenericClass(Of Integer) Visual basic에서), int 에 대 한 정규화 된 어셈블리 형식 이름으로 확장 됩니다 Int32합니다.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.

적용 대상

추가 정보