Type.AssemblyQualifiedName Eigenschaft

Definition

Ruft den durch die Assembly qualifizierten Namen des Typs ab, der den Namen der Assembly enthält, aus der der Type geladen wurde.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

Eigenschaftswert

Der durch die Assembly qualifizierte Name des Type, der den Namen der Assembly enthält, aus der der Type geladen wurde, oder null, wenn die aktuelle Instanz einen generischen Typparameter darstellt.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.

Implementiert

Beispiele

Im folgenden Beispiel wird der AssemblyName, der der-Klasse zugeordnet ist, und der voll qualifizierte Name des-Typs angezeigt.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.

Im folgenden Beispiel werden die von ToString der-Methode zurückgegebenen Zeichen folgen und die AssemblyQualifiedName NameEigenschaften, FullNameund verglichen.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

Hinweise

Der durch die Assembly qualifizierte Name eines Typs besteht aus dem Typnamen, einschließlich des Namespace, gefolgt von einem Komma und dem anzeigen amen der 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. Der Anzeige Name einer Assembly wird mithilfe der Assembly.FullName -Eigenschaft abgerufen.The display name of an assembly is obtained using the Assembly.FullName property.

Hinweis

In der .NET Framework Version 2,0 wird die Prozessorarchitektur der Assemblyidentität hinzugefügt und kann als Teil der assemblynamenszeichenfolgen angegeben werden.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Beispiel: "ProcessorArchitecture = msil".For example, "ProcessorArchitecture=msil". Aus Kompatibilitätsgründen ist Sie jedoch nicht in der Zeichenfolge AssemblyQualifiedName enthalten, die von der-Eigenschaft zurückgegeben wird.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Siehe AssemblyName.ProcessorArchitecture.See AssemblyName.ProcessorArchitecture.

Alle Compiler, die die Common Language Runtime unterstützen, geben den einfachen Namen einer geschachtelten Klasse aus, und die Reflektion erstellt bei der Abfrage einen geschachtelten Namen in Übereinstimmung mit den folgenden Konventionen.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.

TrennzeichenDelimiter BedeutungMeaning
Umgekehrter Schrägstrich (\)Backslash (\) Escapezeichen.Escape character.
Komma (,)Comma (,) Geht vor dem Assemblynamen.Precedes the Assembly name.
Plus Zeichen (+)Plus sign (+) Geht einer-Klasse vorangestellt.Precedes a nested class.
Punkt (.)Period (.) Bezeichnet Namespace Bezeichner.Denotes namespace identifiers.
Eckige Klammern ([])Brackets ([]) Nach einem Typnamen steht für ein Array dieses Typs.After a type name, denotes an array of that type.

- oder --or-

Schließt für einen generischen Typ die Argumentliste des generischen Typs ein.For a generic type, encloses the generic type argument list.

- oder --or-

Schließt innerhalb einer Typargument Liste einen von der Assembly qualifizierten Typ ein.Within a type argument list, encloses an assembly-qualified type.

Der durch die Assembly qualifizierte Name für eine Klasse könnte beispielsweise wie folgt aussehen: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  

Wenn der Namespace ein Pluszeichen enthielt (z. b. TopNamespace. Sub + Namespace), wird dem Pluszeichen (+) ein Escapezeichen (\) vorangestellt, um zu verhindern, dass es als Schachtelungs Trennzeichen interpretiert wird.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. Die Reflektion gibt diese Zeichenfolge wie folgt aus:Reflection would emit this string as follows:

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

Ein "+ +" wird zu\"\\+\+", und "" wird zu "\".A "++" becomes "\+\+", and a "\" becomes "\\".

Dieser qualifizierte Name kann persistent gespeichert und später zum Laden Typevon verwendet werden.This qualified name can be persisted and later used to load the Type. Um nach einem Typezu suchen und zu laden GetType , verwenden Sie entweder mit dem Typnamen oder mit dem qualifizierten Assemblynamen.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetTypebeim Typnamen wird nur Type in der Assembly des Aufrufers und dann in der Systemassembly nach gesucht.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetTypemit dem qualifizierten Assemblynamen für die Assembly Type wird in beliebiger Assembly nach gesucht.GetType with the assembly qualified type name will look for the Type in any assembly.

Typnamen können nachfolgende Zeichen enthalten, die zusätzliche Informationen über den Typ angeben, z. b. ob der Typ ein Verweistyp, ein Zeigertyp oder ein Arraytyp ist.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. Um den Typnamen ohne diese nachfolgenden Zeichen abzurufen, t.GetElementType().ToString()verwenden Sie t , wobei der-Typ ist.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Leerzeichen sind in allen Typnamen Komponenten mit Ausnahme des Assemblynamens relevant.Spaces are relevant in all type name components except the assembly name. Im Assemblynamen sind Leerzeichen vor dem Trennzeichen ', ' relevant, Leerzeichen nach dem Trennzeichen ', ' werden jedoch ignoriert.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Generische Argumente generischer Typen werden selbst anhand des Assemblynamens qualifiziert.Generic arguments of generic types are themselves qualified by assembly name. Beispielsweise int wird im durch die Assembly qualifizierten Typnamen für MyGenericClass<int> (MyGenericClass(Of Integer) in Visual Basic) auf den durch die Assembly qualifizierten Typnamen für Int32erweitert.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.

Wenn das aktuelle Type -Objekt einen generischen Parameter darstellt, gibt nulldiese Eigenschaft zurück.If the current Type object represents a generic parameter, this property returns null.

Gilt für:

Siehe auch