Применение атрибутовApplying Attributes

Чтобы применить атрибут к элементу кода, выполните указанные ниже действия.Use the following process to apply an attribute to an element of your code.

  1. Определите новый атрибут или используйте уже существующий, импортировав его пространство имен из .NET Framework.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. Примените атрибут к элементу кода, поместив его непосредственно перед элементом.Apply the attribute to the code element by placing it immediately before the element.

    Каждый язык имеет собственный синтаксис атрибутов.Each language has its own attribute syntax. В C++ и C# атрибут заключается в квадратные скобки и отделяется от элемента пробелами (к которым относится и разрыв строк).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. В Visual Basic атрибут заключается в угловые скобки и должен находиться на той же логической строке; если строку необходимо разбить, можно использовать символ продолжения строки.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. Укажите позиционные и именованные параметры атрибута.Specify positional parameters and named parameters for the attribute.

    Позиционные параметры обязательны и должны быть указаны перед именованными параметрами; они соответствуют параметрам одного из конструкторов атрибута.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. Именованные параметры необязательны и соответствуют свойствам чтения и записи атрибута.Named parameters are optional and correspond to read/write properties of the attribute. В C++ и C# укажите name=value для каждого необязательного параметра, где name — это имя свойства.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. В Visual Basic укажите name:=value.In Visual Basic, specify name:=value.

При компиляции кода атрибут передается в метаданные и становится доступным для среды CLR, а также пользовательских средств и приложений через службы отражения среды выполнения.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.

Как правило, все имена атрибутов заканчиваются словом Attribute.By convention, all attribute names end with Attribute. В то же время несколько языков, предназначенных для среды выполнения, таких как Visual Basic и C#, не требуют указывать полное имя атрибута.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. Например, если вам нужно инициализировать System.ObsoleteAttribute, достаточно указать имя Obsolete.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

Применение атрибута к методуApplying an Attribute to a Method

В следующем примере кода показано, как объявить атрибут System.ObsoleteAttribute, помечающий код как устаревший.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. Строка "Will be removed in next version" передается атрибуту.The string "Will be removed in next version" is passed to the attribute. Атрибут вызывает предупреждение компилятора, которое отображает переданную строку при вызове кода, описываемого этим атрибутом.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

Применение атрибутов на уровне сборкиApplying Attributes at the Assembly Level

Если необходимо применять атрибут на уровне сборки, используйте ключевое слово assembly (Assembly в Visual Basic).If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. В следующем коде показан атрибут AssemblyTitleAttribute, применяемый на уровне сборки.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")>

Если атрибут применяется, строка "My Assembly" помещается в манифест сборки в раздел метаданных файла.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. Для просмотра атрибута можно воспользоваться дизассемблером MSIL (Ildasm.exe) или создать пользовательскую программу для извлечения атрибута.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

См. такжеSee also