Estendendo metadados usando atributos

Se você tiver usado o C++, você provavelmente está familiarizado com declarações que contêm palavras-chave, como public e private, que fornecem informações adicionais sobre os membros de classe. Essas palavras-chave definem adiante o comportamento de membros de classe descrevendo sua acessibilidade para outras classes. Como compiladores são explicitamente projetados para reconhecer palavras-chave predefinidas, tradicionalmente você não tem a oportunidade para criar suas próprias. Entretanto, o Common Language Runtime permite que você adicione declarações descritivas semelhantes a palavras-chave, chamadas atributos, para fazer anotações de elementos da programação, como tipos, campos, métodos e propriedades.

Quando você compila o código para o tempo de execução, ele é convertido em Microsoft Intermediate Language (MSIL) e colocado dentro um arquivo executável portátil (PE) junto com metadados gerados pelo compilador. Atributos permitem que você coloque informações descritivas adicionais em metadados que podem ser extraídos usando serviços de reflexão em tempo de execução. O compilador cria atributos ao declarar as instâncias das classes especiais que derivem de System.Attribute.

O .NET Framework usa atributos para uma variedade de razões e para tratar um número de questões. Atributos descrevem como serializar os dados, especifique as características que são usadas para aplicar a segurança, e limitar otimizações pelo compilador just-in-time (JIT) para que o código permaneça fácil de depurar. Atributos também podem registrar o nome de um arquivo ou o autor do código, ou controlar a visibilidade de controles e membros durante o desenvolvimento de formulários.

Você pode usar atributos para descrever o código de praticamente qualquer forma concebível e para afetar o comportamento em tempo de execução de novas maneiras criativas. Atributos permitem que você adicione seus próprios elementos descritivos para C#, Visual C++, Microsoft Visual Basic 2005, ou qualquer outra linguagem que atinge o tempo de execução, sem reescrever o compilador.

Tópicos relacionados

Título

Descrição

Aplicando atributos

Descreve como aplicar um atributo a um elemento do seu código.

Codificando Atributos Personalizados

Descreve como criar classes de atributo personalizado.

Recuperando Informações Armazenadas em Atributos

Descreve como recuperar atributos personalizados para o código que é carregado no contexto de execução.

Metadados e componentes autodescritivos

Fornece uma visão geral de metadados e descreve como são implementados em um arquivo executável portátil (PE) do .Net Framework.

Como: Carregar Assemblies no contexto somente de reflexão

Explica como recuperar informações de atributos personalizados em um contexto exclusivo de reflexão.

Referência

System.Attribute