Aplicar atributosApplying Attributes

Para aplicar un atributo a un elemento del código se puede utilizar el proceso siguiente:Use the following process to apply an attribute to an element of your code.

  1. Definir un atributo nuevo o utilizar uno existente importando su espacio de nombres de .NET Framework.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. Aplique el atributo al elemento de código colocándolo inmediatamente antes del elemento.Apply the attribute to the code element by placing it immediately before the element.

    Cada lenguaje tiene su propia sintaxis de atributo.Each language has its own attribute syntax. En C++ y C#, el atributo está incluido entre corchetes y separado del elemento por un espacio en blanco, que puede incluir un salto de línea.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. En Visual Basic, el atributo está incluido entre corchetes angulares y debe estar en la misma línea lógica; se puede utilizar el carácter de continuación de línea si se desea un salto de línea.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 posicionales y parámetros con nombre para el atributo.Specify positional parameters and named parameters for the attribute.

    Los parámetros posicionales son obligatorios y preceden a cualquier parámetro con nombre; corresponden a los parámetros de uno de los constructores del atributo.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. Los parámetros con nombre son opcionales y corresponden a las propiedades de lectura y escritura del atributo.Named parameters are optional and correspond to read/write properties of the attribute. En C++ y C#, especifique name=value para cada parámetro opcional, donde name es el nombre de la propiedad.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. En Visual Basic, especifique name:=value.In Visual Basic, specify name:=value.

El atributo se emite en metadatos al compilar el código y queda disponible para Common Language Runtime y cualquier aplicación o herramienta personalizada a través de los servicios de reflexión en tiempo de ejecución.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 convención, todos los nombres de atributos terminan con la palabra Attribute.By convention, all attribute names end with Attribute. Sin embargo, algunos lenguajes orientados a Common Language Runtime, como Visual Basic y C#, no requieren que se especifique el nombre completo de los atributos.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 ejemplo, si desea inicializar System.ObsoleteAttribute, solo es necesario hacer referencia al mismo como Obsolete.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

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

El siguiente ejemplo de código muestra cómo se declara System.ObsoleteAttribute, que marca código como obsoleto.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. La cadena "Will be removed in next version" se pasa al atributo.The string "Will be removed in next version" is passed to the attribute. Este atributo da lugar a una advertencia del compilador que muestra la cadena transferida cuando se llama al código que describe el atributo.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 a ensambladosApplying Attributes at the Assembly Level

Si desea aplicar un atributo a un ensamblado, utilice la palabra clave assembly (Assembly en Visual Basic).If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. El código siguiente muestra el atributoAssemblyTitleAttribute aplicado al ensamblado.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")>

Cuando se aplica este atributo, la cadena "My Assembly" se coloca en el manifiesto del ensamblado, en la parte de metadatos del archivo.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. Se puede ver el atributo utilizando el Desensamblador de MSIL (Ildasm.exe) o creando un programa personalizado que recupere el atributo.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

Vea tambiénSee Also

AtributosAttributes
Retrieving Information Stored in Attributes (Recuperar la información almacenada en atributos)Retrieving Information Stored in Attributes
ConceptosConcepts
AtributosAttributes