Aplicando atributosApplying Attributes

Use o processo a seguir para aplicar um atributo a um elemento do código.Use the following process to apply an attribute to an element of your code.

  1. Defina um novo atributo ou use um atributo existente importando seu namespace do .NET Framework.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. Aplique o atributo ao elemento de código, colocando-o imediatamente antes do elemento.Apply the attribute to the code element by placing it immediately before the element.

    Cada linguagem tem sua própria sintaxe de atributo.Each language has its own attribute syntax. Em C++ e C#, o atributo é delimitado por colchetes e separado do elemento por um espaço em branco, que pode incluir uma quebra de linha.In C++ and C#, the attribute is surrounded by square brackets and separated from the element by white space, which can include a line break. No Visual Basic, o atributo é delimitado por colchetes angulares e deve estar na mesma linha lógica. O caractere de continuação de linha pode ser usado se você quiser uma quebra de linha.In Visual Basic, the attribute is surrounded by angle brackets and must be on the same logical line; the line continuation character can be used if a line break is desired.

  3. Especifique parâmetros posicionais e parâmetros nomeados para o atributo.Specify positional parameters and named parameters for the attribute.

    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 constructos do atributo.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. Os parâmetros nomeados são opcionais e correspondem às propriedades do atributo de leitura/gravação.Named parameters are optional and correspond to read/write properties of the attribute. Em C++ e C#, especifique name=value para cada parâmetro opcional, em que name é o nome da propriedade.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. No Visual Basic, especifique name:=value.In Visual Basic, specify name:=value.

O atributo é emitido em metadados quando você compila o código e está disponível para o Common Language Runtime e todas as ferramentas ou aplicativos personalizados por meio dos serviços de reflexão do tempo de execução.The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

Por convenção, todos os nomes de atributos terminam com o sufixo Attribute.By convention, all attribute names end with Attribute. No entanto, várias linguagens que têm como destino o runtime, como Visual Basic e C#, não exigem que você especifique o nome completo de um atributo.However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. Por exemplo, se quiser inicializar System.ObsoleteAttribute, você só precisa fazer referência a ele como Obsoleto.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

Aplicar um atributo a um métodoApplying an Attribute to a Method

O exemplo de código a seguir mostra como declarar System.ObsoleteAttribute, que marca o código como obsoleto.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. A cadeia de caracteres "Will be removed in next version" é passada para o atributo.The string "Will be removed in next version" is passed to the attribute. Esse atributo faz com que o compilador que exibe a cadeia de caracteres transmitida emita um aviso quando o código que descreve o atributo for chamado.This attribute causes a compiler warning that displays the passed string when code that the attribute describes is called.

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 assemblyApplying Attributes at the Assembly Level

Se você quiser aplicar um atributo no nível de assembly, use a palavra-chave assembly (Assembly no Visual Basic).If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. O código a seguir mostra o AssemblyTitleAttribute aplicado no nível de assembly.The following code shows the AssemblyTitleAttribute applied at the assembly level.

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.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. Você pode exibir o atributo usando o Desmontador de MSIL (Ildasm.exe) ou criando um programa personalizado para recuperar o atributo.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

Consulte tambémSee also