Расширение метаданных с помощью атрибутов

Тот, кто пользовался C++, вероятно, знаком с объявлениями, содержащими ключевые слова, такие как public и private, дающие дополнительные сведения об элементах класса. Эти ключевые слова дополнительно определяют поведение элементов класса, описывая их доступность для других классов. Поскольку компиляторы специально разрабатываются для распознавания предварительно определенных зарезервированных слов, возможность создания собственных слов обычно отсутствует. Однако среда CLR позволяет добавлять описательные объявления со свойствами зарезервированного слова, называемые атрибутами, для комментирования элементов программирования, таких как типы, поля, методы и свойства.

При компиляции кода для среды выполнения он преобразуется в промежуточный язык MSIL и вместе с метаданными, создаваемыми компилятором, помещается в переносимый исполняемый файл (PE). Атрибуты позволяют поместить в метаданные дополнительные описательные сведения, которые могут быть выделены с помощью служб отражения среды выполнения. Компилятор создает атрибуты при объявлении экземпляров специальных классов, производных от System.Attribute.

.NET Framework использует атрибуты по множеству причин и для решения ряда проблем. Атрибуты описывают, каким образом выполнять сериализацию данных, задают характеристики, используемые для усиления безопасности, и ограничивают оптимизацию использованием JIT-компиляции, благодаря чему возможна простая отладка кода. В атрибутах также может записываться имя файла или автор кода, или же они могут управлять видимостью элементов управления и других элементов при разработке форм.

Атрибуты можно использовать для описания кода практически любым удобным способом. Их также можно применять для воздействия на поведение во время выполнения различными новыми способами. Атрибуты позволяют добавлять собственные описательные элементы в язык C#, Visual C++, Microsoft Visual Basic 2005 или любой другой язык, предназначенный для среды выполнения, без необходимости переписывать компилятор.

Связанные разделы

Заголовок

Описание

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

Описание применения атрибутов к элементам кода.

Написание настраиваемых атрибутов

Описание порядка разработки классов особых атрибутов.

Извлечение информации, сохраненной в атрибуте

Описание порядка получения особых атрибутов для кода, который загружен в контекст выполнения.

Метаданные и компоненты с самоописанием

Общие сведения о метаданных и описание их реализации в переносимом исполняемом файле (РЕ) платформы .NET Framework.

Практическое руководство. Загрузка сборок в контекст, предназначенный только для отражения

Описывает способы получения сведений настраиваемых атрибутов в контексте только для отражения.

Ссылки

System.Attribute