Partilhar via


Aplicar atributos

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

  1. Defina um novo atributo ou use um atributo .NET existente.

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

    Cada idioma tem sua própria sintaxe de atributo. Em C++ e C#, o atributo é cercado por colchetes e separado do elemento por espaço em branco, que pode incluir uma quebra de linha. No Visual Basic, o atributo é cercado por colchetes angulares e deve estar na mesma linha lógica; O caractere de continuação de linha pode ser usado se uma quebra de linha for desejada.

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

    Os 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. Os parâmetros nomeados são opcionais e correspondem às propriedades de leitura/gravação do atributo. Em C++ e C#, especifique name=value para cada parâmetro opcional, onde name é o nome da propriedade. No Visual Basic, especifique name:=value.

O atributo é emitido em metadados quando você compila seu código e está disponível para o common language runtime e qualquer ferramenta ou aplicativo personalizado por meio dos serviços de reflexão de tempo de execução.

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

Aplicar um atributo a um método

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

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();
}
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 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

Aplicar atributos no nível de montagem

Se você quiser aplicar um atributo no nível de assembly, use a assembly palavra-chave (Assembly no Visual Basic). O código a seguir mostra o AssemblyTitleAttribute aplicado no nível do assembly.

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

Quando esse atributo é aplicado, a cadeia de caracteres "My Assembly" é colocada no manifesto do assembly na parte de metadados do arquivo. Você pode exibir o atributo usando o IL Disassembler (Ildasm.exe) ou criando um programa personalizado para recuperar o atributo.

Consulte também