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