Attributs au niveau de l’assembly interprétés par le compilateur C#

La plupart des attributs sont appliqués à des éléments de langage spécifiques, tels que les classes ou les méthodes. Toutefois, certains attributs sont globaux : ils s’appliquent à la totalité d’un assembly ou d’un module. Par exemple, l’attribut AssemblyVersionAttribute peut être utilisé pour incorporer des informations de version dans un assembly, de la manière suivante :

[assembly: AssemblyVersion("1.0.0.0")]

Les attributs globaux apparaissent dans le code source après toute directive using de niveau supérieur et avant toute déclaration de type, de module ou d’espace de noms. Les attributs globaux peuvent apparaître dans plusieurs fichiers sources, mais les fichiers doivent être compilés en un seul passage. Visual Studio ajoute des attributs globaux au fichier AssemblyInfo.cs dans les projets .NET Framework. Ces attributs ne sont pas ajoutés aux projets .NET Core.

Les attributs d’assembly sont des valeurs qui fournissent des informations sur un assembly. Ils sont répartis dans les catégories suivantes :

  • Attributs d’identité de l’assembly
  • Attributs d’informations
  • Attributs de manifeste de l’assembly

Attributs d’identité de l’assembly

Trois attributs (avec un nom fort, le cas échéant), déterminent l’identité d’un assembly : nom, version et culture. Ces attributs constituent le nom complet de l’assembly et sont obligatoires quand vous le référencez le code. Vous pouvez définir la version et la culture d’un assembly en utilisant des attributs. Toutefois, la valeur de nom est définie par le compilateur, l’IDE de Visual Studio dans la boîte de dialogue Informations sur l’assembly ou l’utilitaire Assembly Linker (Al.exe) lors de la création de l’assembly. Le nom de l’assembly est basé sur le manifeste de l’assembly. L’attribut AssemblyFlagsAttribute spécifie si plusieurs copies de l’assembly peuvent coexister.

Le tableau suivant présente les attributs d’identité.

Attribut Objectif
AssemblyVersionAttribute Spécifie la version d’un assembly.
AssemblyCultureAttribute Spécifie la culture prise en charge par l'assembly.
AssemblyFlagsAttribute Spécifie une combinaison d’opérations au niveau du bit d’indicateurs pour un assembly, en décrivant les options du compilateur juste-à-temps (JIT), la possibilité de rediriger l’assembly et l’existence d’une clé publique complète ou sous forme de jetons.

Attributs d’informations

Vous utilisez les attributs d’informations pour fournir des informations supplémentaires sur le produit ou la société d’un assembly. Le tableau suivant présente les attributs d’informations définis dans l’espace de noms System.Reflection.

Attribut Objectif
AssemblyProductAttribute Spécifie un nom de produit pour un manifeste d’assembly.
AssemblyTrademarkAttribute Spécifie une marque de commerce pour un manifeste d’assembly.
AssemblyInformationalVersionAttribute Spécifie une version d’informations pour un manifeste d’assembly.
AssemblyCompanyAttribute Spécifie un nom de société pour un manifeste d’assembly.
AssemblyCopyrightAttribute Définit un attribut personnalisé qui spécifie un copyright pour un manifeste d’assembly.
AssemblyFileVersionAttribute Définit un numéro de version spécifique pour la ressource de la version du fichier Win32.
CLSCompliantAttribute Indique si l’assembly est conforme à la spécification CLS (Common Language Specification).

Attributs de manifeste de l’assembly

Vous pouvez utiliser les attributs de manifeste de l’assembly pour fournir des informations dans le manifeste de l’assembly. Les attributs incluent le titre, la description, l’alias par défaut et la configuration. Le tableau suivant présente les attributs de manifeste de l’assembly définis dans l’espace de noms System.Reflection.

Attribut Objectif
AssemblyTitleAttribute Spécifie un titre d’assembly pour un manifeste d’assembly.
AssemblyDescriptionAttribute Spécifie une description d’assembly pour un manifeste d’assembly.
AssemblyConfigurationAttribute Spécifie une configuration d’assembly (telles que retail ou debug) pour un manifeste d’assembly.
AssemblyDefaultAliasAttribute Définit un alias par défaut convivial pour un manifeste d’assembly.