Vom C#-Compiler interpretierte Attribute auf Assemblyebene
Die meisten Attribute werden auf spezifische Sprachelemente wie Klassen oder Methoden angewendet. Einige Attribute sind jedoch global – sie gelten für eine gesamte Assembly oder ein Modul. Zum Beispiel kann das AssemblyVersionAttribute-Attribut zum Einbetten von Versionsinformationen in eine Assembly verwendet werden. Diese sieht wie folgt aus:
[assembly: AssemblyVersion("1.0.0.0")]
Globale Attribute werden im Quellcode nach allen using
-Direktiven der obersten Ebene und vor Typ-, Modul- oder Namespacedeklarationen angezeigt. Globale Attribute können in mehreren Quelldateien auftreten, jedoch müssen die Dateien in einem einzigen Kompilierungsdurchlauf kompiliert werden. Visual Studio fügt der Datei „AssemblyInfo.cs“ in .NET Framework-Projekten globale Attribute hinzu. Diese Attribute werden nicht zu .NET Core-Projekten hinzugefügt.
Assemblyattribute sind Werte, die Informationen zu einer Assembly bereitstellen. Sie werden in die folgenden Kategorien eingeteilt:
- Attribute für Assemblyidentitäten
- Informationsattribute
- Attribute für Assemblymanifeste.
Attribute für Assemblyidentitäten
Drei Attribute bestimmen mit einem starken Namen (falls zutreffend) die Identität einer Assembly: „name“, „version“ und „culture“. Diese Attribute bilden den vollständigen Namen der Assembly und sind erforderlich, wenn im Code auf sie verwiesen wird. Mit Attributen können die Version und Kultur einer Assembly festgelegt werden. Allerdings wird der name-Wert bei Erstellung der Assembly vom Compiler, der Visual Studio-IDE im Dialogfeld „Assemblyinformationen“ oder dem Assemblylinker (Al.exe) festgelegt. Der Assemblyname basiert auf dem Assemblymanifest. Das Attribut AssemblyFlagsAttribute gibt an, ob mehrere Kopien der Assembly parallel bestehen können.
In der folgenden Tabelle werden die Identitätsattribute aufgeführt.
Attribut | Zweck |
---|---|
AssemblyVersionAttribute | Gibt die Version einer Assembly an |
AssemblyCultureAttribute | Gibt an, welche Kultur die Assembly unterstützt. |
AssemblyFlagsAttribute | Gibt eine bitweise Kombination von Flags für eine Assembly an. Diese dienen zur Beschreibung von Optionen für den JIT-Compiler (Just In Time) und geben an, ob die Assembly erneut zugewiesen werden kann und ob sie einen vollen oder als Token dargestellten öffentlichen Schlüssel besitzt. |
Informationsattribute
Sie verwenden Informationsattribute, um weitere Unternehmens- oder Produktinformationen für eine Assembly bereitzustellen. Die folgende Tabelle zeigt die Informationsattribute, die im Namespace System.Reflection definiert werden.
Attribut | Zweck |
---|---|
AssemblyProductAttribute | Gibt einen Produktnamen für ein Assemblymanifest an. |
AssemblyTrademarkAttribute | Gibt eine Marke für ein Assemblymanifest an. |
AssemblyInformationalVersionAttribute | Gibt Versionsinformationen für ein Assemblymanifest an. |
AssemblyCompanyAttribute | Gibt einen Unternehmensnamen für ein Assemblymanifest an. |
AssemblyCopyrightAttribute | Definiert ein benutzerdefiniertes Attribut, das ein Copyright für ein Assemblymanifest angibt |
AssemblyFileVersionAttribute | Legt eine bestimmte Versionsnummer für die Win32-Dateiversionsressource fest. |
CLSCompliantAttribute | Gibt an, ob die Assembly mit der Common Language Specification (CLS) kompatibel ist |
Attribute für Assemblymanifeste.
Sie können Attribute für Assemblymanifeste verwenden, um Informationen im Assemblymanifest bereitzustellen. Dies schließt Attribute für Titel, Beschreibung, Standardalias und Konfiguration ein. Die folgende Tabelle zeigt die Attribute für Assemblymanifeste, die im Namespace System.Reflection definiert werden.
Attribut | Zweck |
---|---|
AssemblyTitleAttribute | Gibt einen Assemblytitel für ein Assemblymanifest an. |
AssemblyDescriptionAttribute | Gibt eine Assemblybeschreibung für ein Assemblymanifest an. |
AssemblyConfigurationAttribute | Gibt eine Assemblykonfiguration (z. B. „Einzelhandel“ oder „Debug“) für ein Assemblymanifest an. |
AssemblyDefaultAliasAttribute | Definiert einen benutzerfreundlichen Standardalias für ein Assemblymanifest |