C# 編譯器解譯的組件層級屬性
大部分屬性會套用至特定語言項目 (例如類別或方法);不過,有些屬性是全域屬性,其套用至整個組件或模組。 例如,AssemblyVersionAttribute 屬性可以用來將版本資訊內嵌到組件,與下面類似:
[assembly: AssemblyVersion("1.0.0.0")]
全域屬性會出現在原始程式碼的任何最上層 using
指示詞後面,以及任何類型、模組或命名空間宣告前面。 全域屬性可以出現在多個原始程式檔中,但必須使用單一編譯階段編譯檔案。 Visual Studio 會將全域屬性新增至 .NET Framework 專案中的 AssemblyInfo.cs 檔案。 這些屬性不會新增至 .NET Core 專案。
組件屬性是提供組件相關資訊的值。 它們的分類如下:
- 組件識別屬性
- 資訊屬性
- 組件資訊清單屬性
組件識別屬性
三個具有強式名稱 (如果適用) 的屬性會判斷組件的識別:名稱、版本與文化特性。 這些屬性會形成組件的完整名稱,且在程式碼中參考組件時需要用到。 您可以使用屬性來設定組件的版本和文化特性。 不過,名稱值乃是由編譯器、組件資訊對話方塊 中的 Visual Studio IDE 或在建立組件時的組件連結器 (Al.exe) 所設定。 組件名稱是以組件資訊清單為基礎。 AssemblyFlagsAttribute 屬性指定組件的多個複本是否可以並存。
下表顯示識別屬性。
屬性 | 目的 |
---|---|
AssemblyVersionAttribute | 指定組件的版本。 |
AssemblyCultureAttribute | 指定組件所支援的文化特性。 |
AssemblyFlagsAttribute | 為組件指定旗標的位元組合,描述 Just-In-Time (JIT) 編譯器選項、組件是否可重定目標,以及組件是否具有完整或 Token 化的公開金鑰。 |
資訊屬性
您可以使用資訊屬性來為組件提供更多的公司或產品資訊。 下表顯示 System.Reflection 命名空間中定義的資訊屬性。
屬性 | 目的 |
---|---|
AssemblyProductAttribute | 指定組件資訊清單的產品名稱。 |
AssemblyTrademarkAttribute | 指定組件資訊清單的商標。 |
AssemblyInformationalVersionAttribute | 指定組件資訊清單的其他版本資訊。 |
AssemblyCompanyAttribute | 指定組件資訊清單的公司名稱。 |
AssemblyCopyrightAttribute | 定義自訂屬性,以指定組件資訊清單的版權。 |
AssemblyFileVersionAttribute | 設定 Win32 檔案版本資源的特定版本號碼。 |
CLSCompliantAttribute | 表示組件是否符合 Common Language Specification (CLS) 規範。 |
組件資訊清單屬性
您可以使用組件資訊清單屬性,在組件資訊清單中提供資訊。 屬性包括標題、描述、預設別名和組態。 下表顯示 System.Reflection 命名空間中定義的資訊清單屬性。
屬性 | 目的 |
---|---|
AssemblyTitleAttribute | 指定組件資訊清單的組件標題。 |
AssemblyDescriptionAttribute | 指定組件資訊清單的組件描述。 |
AssemblyConfigurationAttribute | 指定組件資訊清單的組件設定 (例如零售或偵錯)。 |
AssemblyDefaultAliasAttribute | 定義組件資訊清單的易記預設別名。 |