Aplicando atributos
Use o seguinte processo para aplicar um atributo a um elemento do código.
Defina um novo atributo ou use um atributo existente importando seu namespace do .NET Framework.
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.
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.
using System;
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
{
static void Main()
{
// This generates a compile-time warning.
int i = Example.Add(2, 2);
}
}
using namespace System;
public ref class Example
{
public:
// Specify attributes between square brackets in C++.
// This attribute is applied only to the Add method.
[Obsolete("Will be removed in next version ")]
static int Add(int a, int b)
{
return (a + b);
}
};
void main()
{
// This generates a compile-time warning.
int i = Example::Add(2, 2);
return;
}
Imports System
Public Class Example
' Specify attributes between angle brackets in Visual Basic,
' and keep them on the same logical line.
' This attribute is applied only to the Add method.
<Obsolete("Will be removed in next version ")> _
Public Shared Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
Module Test
Sub Main()
' This generates a compile-time warning.
Dim i As Integer = Example.Add(2, 2)
End Sub
End Module
import System.*;
public class Example
{
// Specify attributes with comment syntax in J#.
// This attribute is applied only to the Add method.
/** @attribute 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 MyInt = Example.Add(2,2);
}
}
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.
using System.Reflection;
[assembly:AssemblyName("MyAssembly")]
using namespace System::Reflection;
[assembly:AssemblyName("MyAssembly")]
Imports System.Reflection
<Assembly:AssemblyName("MyAssembly")>
import System.Reflection.*;
/** @assembly AssemblyName("MyAssembly") */
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 Desassemblador do MSIL (ILDASM.exe) ou criando um programa personalizado para recuperar o atributo.
Consulte também
Conceitos
Recuperando Informações Armazenadas em Atributos
Referência
Usando atributos (C# Guia de programação)