Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте следующий процесс, чтобы применить атрибут к элементу кода.
Определите новый атрибут или используйте существующий атрибут .NET.
Примените атрибут к элементу кода, поместив его непосредственно перед элементом.
Каждый язык имеет собственный синтаксис атрибута. В C++ и C#атрибут окружен квадратными скобками и отделен от элемента пробелами, которые могут включать разрыв строки. В Visual Basic атрибут окружен угловой скобкой и должен находиться в одной логической строке; Символ продолжения строки можно использовать при необходимости разрыва строки.
Укажите позиционные параметры и именованные параметры для атрибута.
Позиционные параметры являются обязательными и должны поступать перед любыми именованными параметрами; они соответствуют параметрам одного из конструкторов атрибута. Именованные параметры являются необязательными и соответствуют свойствам атрибута чтения и записи. В C++и C#укажите
name=value
для каждого необязательного параметра, гдеname
имя свойства. В Visual Basic укажитеname:=value
.
Атрибут создается в метаданные при компиляции кода и доступен для среды CLR и любого пользовательского инструмента или приложения через службы отражения среды выполнения.
По соглашению все имена атрибутов заканчиваются атрибутом "Атрибут". Однако несколько языков, предназначенных для среды выполнения, например Visual Basic и C#, не требуют указания полного имени атрибута. Например, если вы хотите инициализировать System.ObsoleteAttribute, необходимо ссылаться только на него как устаревшее.
Применение атрибута к методу
В следующем примере кода показано, как использовать System.ObsoleteAttributeкод, который помечает код как устаревший. Строка "Will be removed in next version"
передается атрибуту. Этот атрибут вызывает предупреждение компилятора, отображающее переданную строку при вызове кода, описываемого атрибутом.
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
Применение атрибутов на уровне сборки
Если вы хотите применить атрибут на уровне сборки, используйте assembly
ключевое слово (Assembly
в Visual Basic). В следующем коде показан примененный AssemblyTitleAttribute на уровне сборки.
using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
Imports System.Reflection
<Assembly: AssemblyTitle("My Assembly")>
При применении этого атрибута строка "My Assembly"
помещается в манифест сборки в части метаданных файла. Атрибут можно просмотреть с помощью il Disassembler (Ildasm.exe) или путем создания пользовательской программы для получения атрибута.