Atributos de nível de assembly interpretados pelo compilador C#

A maioria dos atributos é aplicada a elementos específicos da linguagem, como classes ou métodos; No entanto, alguns atributos são globais — eles se aplicam a um assembly ou módulo inteiro. Por exemplo, o AssemblyVersionAttribute atributo pode ser usado para incorporar informações de versão em um assembly, da seguinte forma:

[assembly: AssemblyVersion("1.0.0.0")]

Os atributos globais aparecem no código-fonte após quaisquer diretivas de nível using superior e antes de qualquer tipo, módulo ou declaração de namespace. Os atributos globais podem aparecer em vários arquivos de origem, mas os arquivos devem ser compilados em um único passo de compilação. O Visual Studio adiciona atributos globais ao arquivo AssemblyInfo.cs em projetos do .NET Framework. Esses atributos não são adicionados aos projetos .NET Core.

Atributos de assembly são valores que fornecem informações sobre um assembly. Enquadram-se nas seguintes categorias:

  • Atributos de identidade do assembly
  • Atributos informativos
  • Atributos do manifesto do assembly

Atributos de identidade do assembly

Três atributos (com um nome forte, se aplicável) determinam a identidade de um assembly: nome, versão e cultura. Esses atributos formam o nome completo do assembly e são necessários quando você faz referência a ele no código. Você pode definir a versão e a cultura de um assembly usando atributos. No entanto, o valor do nome é definido pelo compilador, o IDE do Visual Studio na caixa de diálogo Informações do assembly ou o vinculador do assembly (Al.exe) quando o assembly é criado. O nome do assembly é baseado no manifesto do assembly. O AssemblyFlagsAttribute atributo especifica se várias cópias do assembly podem coexistir.

A tabela a seguir mostra os atributos de identidade.

Atributo Propósito
AssemblyVersionAttribute Especifica a versão de um assembly.
AssemblyCultureAttribute Especifica qual cultura o assembly suporta.
AssemblyFlagsAttribute Especifica uma combinação bit a bit de sinalizadores para um assembly, descrevendo as opções do compilador just-in-time (JIT), se o assembly é redirecionável e se tem uma chave pública completa ou tokenizada.

Atributos informativos

Você usa atributos informativos para fornecer mais informações sobre a empresa ou o produto para uma montagem. A tabela a seguir mostra os atributos informativos definidos no System.Reflection namespace.

Atributo Propósito
AssemblyProductAttribute Especifica um nome de produto para um manifesto de assembly.
AssemblyTrademarkAttribute Especifica uma marca comercial para um manifesto de assembly.
AssemblyInformationalVersionAttribute Especifica uma versão informativa para um manifesto de assembly.
AssemblyCompanyAttribute Especifica um nome de empresa para um manifesto de assembly.
AssemblyCopyrightAttribute Define um atributo personalizado que especifica um copyright para um manifesto de assembly.
AssemblyFileVersionAttribute Define um número de versão específico para o recurso de versão do arquivo Win32.
CLSCompliantAttribute Indica se o assembly é compatível com a Common Language Specification (CLS).

Atributos do manifesto do assembly

Você pode usar atributos de manifesto de assembly para fornecer informações no manifesto de assembly. Os atributos incluem título, descrição, alias padrão e configuração. A tabela a seguir mostra os atributos de manifesto System.Reflection de assembly definidos no namespace.

Atributo Propósito
AssemblyTitleAttribute Especifica um título de assembly para um manifesto de assembly.
AssemblyDescriptionAttribute Especifica uma descrição de assembly para um manifesto de assembly.
AssemblyConfigurationAttribute Especifica uma configuração de assembly (como varejo ou depuração) para um manifesto de assembly.
AssemblyDefaultAliasAttribute Define um alias padrão amigável para um manifesto de assembly