Aplicando atributos

Use o seguinte processo para aplicar um atributo a um elemento do código.

  1. Defina um novo atributo ou use um atributo existente importando seu namespace do .NET Framework.

  2. Aplique o atributo para o elemento de código colocando-o imediatamente antes do elemento.

    Cada linguagem tem sua própria sintaxe de atributo. No C# e no C++, o atributo é circundado por colchetes e separado do elemento por espaço em branco, que pode incluir uma quebra de linha. Em Visual Basic, o atributo é circundado por colchetes angulares e deve estar na mesma linha lógica; o caractere de continuação de linha pode ser usado caso se deseje uma quebra de linha. Em J#, o atributo é conectado usando sintaxe especial de comentário.

  3. Especifique parâmetros posicionais e parâmetros nomeados para o atributo.

    Parâmetros posicionais são necessários e devem vir antes de quaisquer parâmetros nomeados; eles correspondem aos parâmetros de um dos construtores do atributo. Parâmetros nomeados são opcionais e correspondem às propriedades do atributo de leitura/gravação. Em C++, C# e J#, especifique name=value para cada parâmetro opcional, onde name é o nome da propriedade. Em Visual Basic, especifique name:=value.

O atributo é emitido em metadados quando você compila o código e está disponível para o Common Language Runtime e qualquer ferramenta ou aplicativo personalizado por meio dos serviços de reflexo do tempo de execução.

Por convenção, todos os nomes de atributo terminam com Atributo. No entanto, várioa linguagens que direcionam o tempo de execução, como Visual Basic e C#, não exigem que você especifique a nome completo de um atributo. Por exemplo, se você quiser inicializar System.ObsoleteAttribute, você só precisará fazer referência a ele como Obsolete .

Aplicando um atributo a um método

O exemplo de código a seguir mostra como declarar System.ObsoleteAttribute , que marca o código como obsoleto. A sequência de caracteres "Will be removed in next version" é passada para o atributo. Esse atributo causa um aviso do compilador que exibe a sequência de caracteres passada quando o código que descreve o atributo for chamado.

Public Class Example
    ' Specify attributes between square brackets in C#.
    ' This attribute is applied only to the Add method.
    <Obsolete("Will be removed in next version.")>
    Public Shared Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Class

Class Test
    Public Shared Sub Main()
        ' This generates a compile-time warning.
        Dim i As Integer = Example.Add(2, 2)
    End Sub
End Class
public class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version.")]
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}

class Test
{
    public static void Main()
    {
        // This generates a compile-time warning.
        int i = Example.Add(2, 2);
    }
}
public ref class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
public:
    [Obsolete("Will be removed in next version.")]
    static int Add(int a, int b)
    {
        return (a + b);
    }
};

ref class Test
{
public:
    static void Main()
    {
        // This generates a compile-time warning.
        int i = Example::Add(2, 2);
    }
};

int main()
{
    Test::Main();
}

Aplicando atributos no nível do conjunto de módulos

Se você quiser aplicar um atributo no nível do conjunto de módulos, use a palavra-chave Assembly. O código a seguir mostra AssemblyNameAttribute aplicado no nível do conjunto de módulos.

Imports System.Reflection
<Assembly:AssemblyTitle("My Assembly")>
using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
using namespace System::Reflection;
[assembly:AssemblyTitle("My Assembly")];

Quando esse atributo é aplicado, a sequência de caracteres "MyAssembly" é colocada na manifesto do assembly na parte de metadados do arquivo. Você pode exibir o atributo usando o O Desassemblador do MSIL (Ildasm. exe) ou criando um programa personalizado para recuperar o atributo.

Consulte também

Referência

Atributos (C# e Visual Basic)

Conceitos

Estendendo metadados usando atributos

Recuperando Informações Armazenadas em Atributos

Outros recursos

Attributed Programming Concepts