閱讀英文

共用方式為


Type.AssemblyQualifiedName 屬性

定義

取得類型的組件限定名稱,包含載入 Type 的組件名稱。

C#
public abstract string AssemblyQualifiedName { get; }
C#
public abstract string? AssemblyQualifiedName { get; }

屬性值

Type 的組件限定名稱,包含載入 Type 的組件名稱,如果目前的執行個體表示泛型類型參數,則為 null

實作

範例

下列範例會顯示與 類別相關聯的元件名稱,以及型別的完整名稱。

C#
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.

下列範例會比較 方法傳 ToString 回的字串,以及 NameFullNameAssemblyQualifiedName 屬性。

C#
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

備註

型別的元件限定名稱是由類型名稱所組成,包括其命名空間,後面接著逗號,後面接著元件的顯示名稱。 元件顯示名稱是使用 Assembly.FullName 屬性取得。

注意

處理器架構是元件識別的一部分,而且可以指定為元件名稱字串的一部分。 例如,“ProcessorArchitecture=msil”。 不過,基於相容性考慮,它不會包含在 屬性所傳回的 AssemblyQualifiedName 字串中。 請參閱 AssemblyName.ProcessorArchitecture

支援 Common Language Runtime 的所有編譯程式都會發出巢狀類別的簡單名稱,而反映會根據下列慣例,在查詢時建構管理的名稱。

分隔符號 意義
反斜線 (\) 逸出字元。
逗號 (,) 在元件名稱前面。
加號 (+) 在巢狀類別之前。
Period (.) 表示命名空間標識碼。
方括弧 ([]) 在類型名稱之後,表示該類型的數位。

-或-

如果是泛型類型,請括住泛型型別自變數清單。

-或-

在類型自變數清單中,括住元件限定型別。

例如,類別的元件限定名稱可能如下所示:

TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089

如果命名空間包含加號,例如 TopNamespace.Sub+Namespace,則加號 (+) 前面會加上逸出字元 (\) ,以防止其解譯為巢狀分隔符。 反映會發出此字串,如下所示:

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

“++” 會變成 “\+\+”,而 “\” 會變成 “\”。

這個限定名稱可以儲存,稍後用來載入 Type。 若要搜尋並載入 Type,請只搭配 GetType 類型名稱或元件限定型別名稱使用。 GetType 型別名稱只會在 Type 呼叫端的元件中尋找 ,然後在 [系統] 元件中尋找 。 GetType 具有元件限定型別名稱的 ,將會在任何元件中尋找 Type

類型名稱可能包含代表類型其他資訊的尾端字元,例如類型是否為引用類型、指標類型或數位類型。 若要擷取不含這些尾端字元的類型名稱,請使用 t.GetElementType().ToString(),其中 t 是類型。

除了元件名稱以外,所有類型名稱元件都與空格相關。 在元件名稱中,『,』 分隔符之前的空格是相關的,但在 『,『 分隔符後面的空格會被忽略。

泛型類型的泛型自變數本身是由元件名稱限定。 例如,在Visual Basic) 中 (MyGenericClass(Of Integer) 的元件限定類型名稱MyGenericClass<int>中,int會展開為的Int32元件限定類型名稱。

如果目前的 Type 物件代表泛型參數,這個屬性會傳 null回 。

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

另請參閱