Type.AssemblyQualifiedName Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den assemblyqualifizierten Namen des Typs ab, der den Namen der Assembly enthält, aus der dieses Type Objekt geladen wurde.
public:
abstract property System::String ^ AssemblyQualifiedName { System::String ^ get(); };
public abstract string AssemblyQualifiedName { get; }
public abstract string? AssemblyQualifiedName { get; }
member this.AssemblyQualifiedName : string
Public MustOverride ReadOnly Property AssemblyQualifiedName As String
Eigenschaftswert
Der assemblyqualifizierte Name des TypeTyps , der den Namen der Assembly enthält, aus der das Type Assembly geladen wurde, oder null wenn der Typ nicht durch einen assemblyqualifizierten Namen dargestellt werden kann. Typen, die nicht durch einen assemblyqualifizierten Namen dargestellt werden können, umfassen Typen, die nicht aufgelöste generische Parameter enthalten (ContainsGenericParameters ist true) und Typen, die Funktionszeiger enthalten.
Implementiert
Beispiele
Im folgenden Beispiel wird der Assemblyname angezeigt, der der Klasse zugeordnet ist, und den vollqualifizierten Namen des Typs.
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.
open System
let objType = typeof<Array>
// Print the assembly full name.
printfn $"Assembly full name:\n {objType.Assembly.FullName}."
// Print the assembly qualified name.
printfn $"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 der ToString Methode und den NameEigenschaften FullNamezurückgegebenen AssemblyQualifiedName Zeichenfolgen verglichen.
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
open System
open System.Globalization
let showTypeInfo (t: Type) =
printfn $"Name: {t.Name}"
printfn $"Full Name: {t.FullName}"
printfn $"ToString: {t}"
printfn $"Assembly Qualified Name: {t.AssemblyQualifiedName}\n"
typeof<String>
|> showTypeInfo
(typeof<ResizeArray<_>>).GetGenericTypeDefinition()
|> showTypeInfo
let list = ResizeArray<String>()
list.GetType()
|> showTypeInfo
let v: obj = 12
v.GetType()
|> showTypeInfo
typeof<IFormatProvider>
|> showTypeInfo
let ifmt = NumberFormatInfo.CurrentInfo
ifmt.GetType()
|> showTypeInfo
let o = Some 3
o.GetType()
|> showTypeInfo
// 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
//
// Name: FSharpOption`1
// Full Name: Microsoft.FSharp.Core.FSharpOption`1[[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
// ToString: Microsoft.FSharp.Core.FSharpOption`1[System.Int32]
// Assembly Qualified Name: Microsoft.FSharp.Core.FSharpOption`1[[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
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 assemblyqualifizierte Name eines Typs besteht aus dem Typnamen, einschließlich des Namespaces, gefolgt von einem Komma, gefolgt vom Anzeigenamen der Assembly. Der Anzeigename einer Assembly wird mithilfe der Assembly.FullName Eigenschaft abgerufen.
Hinweis
Die Prozessorarchitektur ist Teil der Assemblyidentität und kann als Teil von Assemblynamenzeichenfolgen angegeben werden. Beispiel: "ProcessorArchitecture=msil". Aus Kompatibilitätsgründen ist sie jedoch nicht in der von der AssemblyQualifiedName Eigenschaft zurückgegebenen Zeichenfolge enthalten. Siehe AssemblyName.ProcessorArchitecture.
Alle Compiler, die die Common Language Runtime unterstützen, geben den einfachen Namen einer geschachtelten Klasse aus, und Reflection erstellt einen geschachtelten Namen, wenn abgefragt wird, gemäß den folgenden Konventionen.
| Trennzeichen | Bedeutung |
|---|---|
| Umgekehrter Schrägstrich (\) | Escapezeichen. |
| Komma (,) | Steht vor dem Assemblynamen. |
| Pluszeichen (+) | Steht vor einer geschachtelten Klasse. |
| Punkt (.) | Gibt Namespace-IDs an. |
| Eckige Klammern ([]) | Gibt nach einem Typnamen ein Array dieses Typs an. - oder - Für einen generischen Typ schließt die generische Typargumentliste ein. - oder - In einer Typargumentliste wird ein assemblyqualifizierter Typ eingeschlossen. |
Der assemblyqualifizierte Name für eine Klasse könnte z. B. wie folgt aussehen:
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", würde dem Pluszeichen (+) ein Escapezeichen (\) vorangestellt, um zu verhindern, dass es als Schachtelungstrennzeichen interpretiert wird. Spiegelung würde diese Zeichenfolge wie folgt ausgeben:
TopNamespace.Sub\+Namespace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089
Ein "++" wird zu "\+\+", und ein "\" wird zu "\\".
Dieser qualifizierte Name kann beibehalten und später zum Laden der TypeDatei verwendet werden. Um nach einem TypeTyp zu suchen und zu laden, verwenden Sie GetType entweder nur den Typnamen oder den Namen des qualifizierten Assemblytyps. GetType mit dem Typnamen wird nur nach der Type Assembly des Aufrufers und dann in der Systemassembly gesucht. GetType mit dem Namen des qualifizierten Assemblytyps wird nach der Type Assembly in jeder Assembly gesucht.
Typnamen können nachfolgende Zeichen enthalten, die zusätzliche Informationen zum Typ angeben, z. B. ob der Typ ein Bezugstyp, ein Zeigertyp oder ein Arraytyp ist. Um den Typnamen ohne diese nachgestellten Zeichen abzurufen, verwenden Sie t.GetElementType().ToString()t dabei den Typ.
Leerzeichen sind in allen Typnamenkomponenten mit Ausnahme des Assemblynamens relevant. Im Assemblynamen sind Leerzeichen vor dem Trennzeichen "," relevant, aber Leerzeichen nach dem Trennzeichen "," werden ignoriert.
Generische Argumente generischer Typen werden selbst durch Assemblyname qualifiziert. Beispielsweise wird im assemblyqualifizierten Typnamen für MyGenericClass<int> (MyGenericClass(Of Integer) in Visual Basic) int auf den assemblyqualifizierten Typnamen für Int32.
Wenn das aktuelle Objekt einen generischen Type Parameter darstellt, gibt diese Eigenschaft zurück null.