Aplicar atributos
Use o processo a seguir para aplicar um atributo a um elemento do código.
Defina um novo atributo ou use um atributo do .NET existente.
Aplique o atributo ao elemento de código, colocando-o imediatamente antes do elemento.
Cada linguagem tem sua própria sintaxe de atributo. 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. 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.
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 constructos do atributo. Parâmetros nomeados são opcionais e correspondem às propriedades do atributo de leitura/gravação. Em C++ e C#, especifique
name=value
para cada parâmetro opcional, em quename
é o nome da propriedade. No Visual Basic, especifiquename:=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.
Por convenção, todos os nomes de atributos terminam com o sufixo "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. Por exemplo, se quiser inicializar System.ObsoleteAttribute, 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 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.
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 assembly
Se você quiser aplicar um atributo no nível de assembly, use a palavra-chave assembly
(Assembly
no Visual Basic). O código a seguir mostra o AssemblyTitleAttribute aplicado no nível de 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 Desmontador de IL (Ildasm.exe) ou criando um programa personalizado para recuperar o atributo.