Type.AssemblyQualifiedName Propriedade

Definição

Obtém o nome do tipo qualificado pelo assembly, que inclui o nome do assembly do qual este objeto Type foi carregado.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

Valor da propriedade

O nome qualificado pelo assembly do Type, que inclui o nome do assembly do qual o Type foi carregado, ou null se a instância atual representa um parâmetro de tipo genérico.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.

Implementações

Exemplos

O exemplo a seguir exibe o nome do assembly associado à classe e o nome totalmente qualificado do tipo.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.

O exemplo a seguir compara as cadeias de ToString caracteres retornadas Namepelo método e AssemblyQualifiedName as propriedades, FullNamee.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

Comentários

O nome qualificado do assembly de um tipo consiste no nome do tipo, incluindo seu namespace, seguido por uma vírgula, seguido pelo nome de exibição do assembly.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. O nome de exibição de um assembly é obtido usando Assembly.FullName a propriedade.The display name of an assembly is obtained using the Assembly.FullName property.

Observação

No .NET Framework versão 2.0, a arquitetura do processador é adicionada à identidade do assembly e pode ser especificada como parte das cadeias de caracteres de nome do assembly.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Por exemplo, "ProcessorArchitecture=msil".For example, "ProcessorArchitecture=msil". No entanto, ele não está incluído na cadeia de caracteres retornada pela propriedade AssemblyQualifiedName, por motivos de compatibilidade.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Consulte AssemblyName.ProcessorArchitecture.See AssemblyName.ProcessorArchitecture.

Todos os compiladores que oferecem suporte a Common Language Runtime emitem o nome simples de uma classe aninhada, e a reflexão constrói um nome desconfigurado quando consultado, de acordo com as convenções a seguir.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.

DelimitadorDelimiter SignificadoMeaning
Barra invertida (\)Backslash (\) Caractere de escape.Escape character.
Vírgula (,)Comma (,) Precede o nome Assembly.Precedes the Assembly name.
Sinal de adição (+)Plus sign (+) Precede uma classe aninhada.Precedes a nested class.
Ponto final (.)Period (.) Denota identificadores de namespace.Denotes namespace identifiers.
Colchetes ([])Brackets ([]) Depois de um nome de tipo, indica uma matriz desse tipo.After a type name, denotes an array of that type.

- ou --or-

Para um tipo genérico, o inclui a lista de argumentos de tipo genérico.For a generic type, encloses the generic type argument list.

- ou --or-

Dentro de uma lista de argumentos de tipo, o inclui um tipo qualificado para assembly.Within a type argument list, encloses an assembly-qualified type.

Por exemplo, o nome qualificado do assembly para uma classe pode ser semelhante a este: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  

Se o namespace contiver um sinal de adição, por exemplo, TopNamespace. sub + namespace, o sinal de mais (+) será precedido por um caractere\de escape () para impedir que ele seja interpretado como um separador de aninhamento.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. A reflexão emitiria essa cadeia de caracteres da seguinte maneira:Reflection would emit this string as follows:

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

Um "+ +" torna-\se "\+\+" e um\"" torna-se "\".A "++" becomes "\+\+", and a "\" becomes "\\".

Este nome qualificado pode ser mantido e posteriormente usado para carregar o Type.This qualified name can be persisted and later used to load the Type. Para procurar e carregar Type, use GetType apenas com o nome do tipo ou com o nome do tipo qualificado do assembly.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType com o nome de tipo só irá procurar o Type no assembly do chamador e, em seguida, no assembly System.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType com o nome de tipo qualificado de assembly irá procurar o Type em qualquer assembly.GetType with the assembly qualified type name will look for the Type in any assembly.

Nomes de tipo podem incluir caracteres à direita que denotam informações adicionais sobre o tipo, como se o tipo é um tipo de referência, ponteiro ou matriz.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. Para recuperar o nome do tipo sem esses caracteres à direita, use t.GetElementType().ToString(), em que t é o tipo.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Espaços são relevantes em todos os componentes de nome do tipo, exceto o nome do assembly.Spaces are relevant in all type name components except the assembly name. No nome do assembly, espaços antes do separador ',' são relevantes, mas espaços depois do separador ',' são ignorados.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Os argumentos genéricos de tipos genéricos são, por sua conta, qualificados pelo nome do assembly.Generic arguments of generic types are themselves qualified by assembly name. Por exemplo, no nome de tipo qualificado por assembly para MyGenericClass<int> (MyGenericClass(Of Integer) em Visual Basic), int é expandido para o nome de tipo qualificado por Int32assembly para.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.

Se o objeto Type atual representar um parâmetro genérico, essa propriedade retornará null.If the current Type object represents a generic parameter, this property returns null.

Aplica-se a

Veja também