Attributi a livello di assembly interpretati dal compilatore C#

La maggior parte degli attributi viene applicata a elementi specifici del linguaggio quali classi o metodi. Alcuni attributi sono invece globali e vengono applicati a un intero assembly o a un intero modulo. Ad esempio, l'attributo AssemblyVersionAttribute può essere usato per incorporare informazioni sulla versione in un assembly, nel modo seguente:

[assembly: AssemblyVersion("1.0.0.0")]

Gli attributi globali appaiono nel codice sorgente dopo eventuali direttive using di primo livello e prima delle dichiarazioni di tipo, modulo o spazio dei nomi. Gli attributi globali possono apparire in più file di origine, ma i file devono essere compilati in un'unica operazione di compilazione. Visual Studio aggiunge attributi globali al file AssemblyInfo.cs nei progetti .NET Framework. Questi attributi non vengono aggiunti ai progetti .NET Core.

Gli attributi dell'assembly sono valori che forniscono informazioni relative a un assembly. Sono suddivisi nelle seguenti categorie:

  • Attributi relativi all'identità dell'assembly
  • Attributi informativi
  • Attributi relativi al manifesto dell'assembly

Attributi relativi all'identità dell'assembly

Tre attributi (con un nome sicuro, se disponibile), consentono di determinare l'identità di un assembly: il nome, la versione e le impostazioni cultura. Questi attributi formano il nome completo dell'assembly e sono necessari per creare riferimenti all'assembly nel codice. È possibile usare gli attributi per impostare la versione e le impostazioni cultura di un assembly. Tuttavia il valore del nome viene impostato dal compilatore, l'IDE di Visual Studio nella finestra di dialogo informazioni Assembly oppure Assembly Linker (Al.exe) quando viene creato dell'assembly. Il nome dell'assembly si basa sul manifesto dell'assembly. L'attributo AssemblyFlagsAttribute specifica se è supportata la coesistenza di più copie dell'assembly.

La tabella seguente visualizza gli attributi relativi all'identità.

Attributo Scopo
AssemblyVersionAttribute Specifica la versione di un assembly.
AssemblyCultureAttribute Specifica le impostazioni cultura supportate dall'assembly.
AssemblyFlagsAttribute Specifica se un assembly supporta l'esecuzione side-by-side nello stesso computer, nello stesso processo o nello stesso dominio dell'applicazione.

Attributi informativi

Gli attributi informativi vengono usati per fornire informazioni aggiuntive sulla società o sul prodotto per un assembly. La tabella seguente mostra gli attributi informativi definiti nello spazio dei nomi System.Reflection.

Attributo Scopo
AssemblyProductAttribute Specifica il nome di un prodotto per un manifesto dell'assembly.
AssemblyTrademarkAttribute Specifica un marchio per un manifesto dell'assembly.
AssemblyInformationalVersionAttribute Specifica una versione informativa per un manifesto dell'assembly.
AssemblyCompanyAttribute Specifica il nome di una società per un manifesto dell'assembly.
AssemblyCopyrightAttribute Definisce un attributo personalizzato che specifica un copyright per un manifesto dell'assembly.
AssemblyFileVersionAttribute Imposta un numero di versione specifico per la risorsa della versione del file Win32.
CLSCompliantAttribute Indica se l'assembly è conforme a CLS (Common Language Specification).

Attributi relativi al manifesto dell'assembly

È possibile usare gli attributi relativi al manifesto dell'assembly per includere informazioni nel manifesto dell'assembly. Gli attributi includono titolo, descrizione, alias predefinito e configurazione. La tabella seguente visualizza gli attributi del manifesto dell'assembly definiti nello spazio dei nomi System.Reflection.

Attributo Scopo
AssemblyTitleAttribute Specifica un titolo dell'assembly per un manifesto dell'assembly.
AssemblyDescriptionAttribute Specifica una descrizione dell'assembly per un manifesto dell'assembly.
AssemblyConfigurationAttribute Specifica una configurazione dell'assembly, ad esempio retail o debug, per un manifesto dell'assembly.
AssemblyDefaultAliasAttribute Definisce un alias predefinito descrittivo per un manifesto dell'assembly.