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 durch die Assembly qualifizierten Namen des Typs ab, der den Namen der Assembly enthält, aus der der Type 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 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.
Implementiert
Beispiele
Im folgenden Beispiel werden der der Klasse zugeordnete Assemblyname und der vollqualifizierte Name des Typs angezeigt.
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.
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 -Methode zurückgegebenen Zeichenfolgen mit den ToStringNameEigenschaften , FullNameund AssemblyQualifiedName
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 Namespace, 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". Es ist jedoch aus Kompatibilitätsgründen 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 Reflektion erstellt einen abgefragten Namen gemäß den folgenden Konventionen.
Trennzeichen | Bedeutung |
---|---|
Umgekehrter Schrägstrich (\) | Escapezeichen. |
Komma (,) | Geht dem Assemblynamen voran. |
Pluszeichen (+) | Geht einer geschachtelten Klasse voran. |
Punkt (.) | Gibt Namespacebezeichner an. |
Klammern ([]) | Gibt nach einem Typnamen ein Array dieses Typs an. - oder - Bei einem generischen Typ schließt die Argumentliste des generischen Typs ein. - oder - Schließt in einer Typargumentliste einen assemblyqualifizierten Typ ein. |
Der assemblyqualifizierte Name für eine Klasse könnte beispielsweise wie folgt aussehen:
TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089
Wenn der Namespace ein Pluszeichen enthält, z. B. TopNamespace.Sub+Namespace, wird dem Pluszeichen (+) ein Escapezeichen (\) vorangestellt, um zu verhindern, dass es als Schachtelungstrennzeichen interpretiert wird. Reflektion 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 aus "\" zu "\\".
Dieser qualifizierte Name kann beibehalten und später zum Laden von Typeverwendet werden. Um nach zu suchen und zu Typeladen, verwenden Sie GetType entweder nur mit dem Typnamen oder mit dem Namen des qualifizierten Assemblytyps. GetType mit dem Typnamen wird nur nach dem Type in der Assembly des Aufrufers und dann in der Systemassembly gesucht. GetType mit dem assemblyqualifizierten Typnamen sucht nach dem Type in jeder Assembly.
Typnamen können nachfolgende Zeichen enthalten, die zusätzliche Informationen zum Typ angeben, z. B. ob es sich bei dem Typ um einen Verweistyp, einen Zeigertyp oder einen Arraytyp handelt. Um den Typnamen ohne diese nachfolgenden Zeichen abzurufen, verwenden Sie t.GetElementType().ToString()
, wobei t
der Typ ist.
Leerzeichen sind in allen Typnamenkomponenten mit Ausnahme des Assemblynamens relevant. Im Assemblynamen sind Leerzeichen vor dem Trennzeichen ",", aber Leerzeichen nach dem Trennzeichen "," werden ignoriert.
Generische Argumente generischer Typen werden selbst durch assemblynamen qualifiziert. Beispielsweise wird im assemblyqualifizierten Typnamen für MyGenericClass<int>
(MyGenericClass(Of Integer)
in Visual Basic) int
auf den assemblyqualifizierten Typnamen für Int32erweitert.
Wenn das aktuelle Type Objekt einen generischen Parameter darstellt, gibt diese Eigenschaft zurück null
.