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и. AssemblyQualifiedNameThe 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 архитектура процессора добавляется в удостоверение сборки и может быть указана в качестве части строк имен сборок.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.

Все компиляторы, поддерживающие среду CLR, выдают простое имя вложенного класса, а отражение при запросе создает искаженное имя в соответствии со следующими соглашениями.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-символ.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  

Если пространство имен содержит знак «плюс», например топнамеспаце. Re+ Namespace, то перед знаком «плюс» (+) будет стоять escape-символ (\), чтобы предотвратить его интерпретацию как разделитель вложения.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.

Применяется к

Дополнительно