Отображение атрибутов при статическом связывании

Отображение атрибутов при статическом связывании

Как уже упоминалось в этой главе, атрибуты будут бесполезны до тех пор, пока некоторый фрагмент программного обеспечения не выполнит их отображение. После выявления атрибута соответствующий фрагмент программного обеспечения может выбрать подходящее действие. Как и само приложение, этот "фрагмент программного обеспечения" может для выявления пользовательского атрибута использовать статическое или динамическое связывание. Для статического связывания требуется, чтобы приложение-клиент к моменту компиляции уже имели определение соответствующего атрибута (в нашем случае это атрибут VehicleDescriptionAttribute). Компоновочный блок AttributedCarLibrary определяет пользовательский атрибут, как открытый класс, поэтому статическое связывание в данном случае будет наилучшим выбором.

Для иллюстрации процесса отображения пользовательских атрибутов создайте новое консольное приложение C# с именем VehicleDescriptionAttributeReader. Затем установите в нем ссылку на компоновочный блок AttributedCarLibrary. Наконец, поместите в исходный файл *.cs следующий программный код.

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

using System;

using AttributedCarLibrary;

public class Program {

 static void Main(string [] args) {

  // Получение Type для представления Winnebago.

  Type t = typeof(Winnebago);

  // Получение атрибутов Winnebago.

  object[] customAtts = t.GetCustomAttributes(false);

  // Печать описания.

  Console.WriteLine("*** Значение VehicleDescriptionAttribute *** ");

  foreach(VehicleDescriptionAtttibute v in customAtts) Console.WriteLine("-› {0} ", v.Description);

  Console.ReadLine();

 }

}

Как следует из самого названия, метод Type.GetCustomAttributes() возвращает массив объектов, представляющих все атрибуты, примененные тому к члену, который представлен с помощью Туре (логический параметр этого метода указывает, следует ли расширить поиск на всю цепочку наследования). После получения списка атрибутов выполняется цикл по всем классам VehicleDescriptionAttribute с выводом на печать значения, полученного свойством Description.

Исходный код. Проект VehicleDescriptionAttributeReader размещен в подкаталоге, соответствующем главе 12.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7. Унификация атрибутов

Из книги Базы данных: конспект лекций автора Автор неизвестен

7. Унификация атрибутов Если при миграции первичных ключей некоего родительского класса сущностей в один и тот же дочерний класс попадают совпадающие по смыслу атрибуты из разных родительских классов, то эти атрибуты необходимо «слить», т. е. необходимо провести так


ГЛАВА 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

ГЛАВА 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов Как показано в предыдущей главе, компоновочные блоки являются базовыми элементами установки и среде .NET. С помощью интегрированного обозревателя объектов в Visual Studio 2005 можно


Потребители атрибутов

Из книги Создание электронных книг в формате FictionBook 2.1: практическое руководство [Release 1.01 от 28.II.2010 г.] автора Кондратович Михаил Иосифович

Потребители атрибутов Как вы можете догадаться, в комплекте с .NET Framework 2.0 SDK поставляется множество утилит, предназначенных для работы с различными атрибутами. Даже компилятор C# (csc.exe) запрограммирован на проверку определенных атрибутов в процессе компиляции. Например,


Отображение атрибутов при динамическом связывании

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Отображение атрибутов при динамическом связывании В предыдущем примере использовалось статическое связывание и печатались данные описания для типа Winnebago. Это было возможно благодаря тому, что тип класса VehicleDescriptionAttribute был определен, как открытый член компоновочного


Роль атрибутов CIL

Из книги Визуальное моделирование электронных схем в PSPICE автора Хайнеманн Роберт

Роль атрибутов CIL Во многих случаях директивы CIL сами по себе оказываются недостаточно информативными, чтобы дать исчерпывающее определение соответствующего типа .NET или его члена. Поэтому многие директивы CIL сопровождаются различными атрибутами CIL, сообщающими о том,


§ 2.14 Список атрибутов элементов

Из книги XSLT автора Хольцнер Стивен

§ 2.14 Список атрибутов элементов Многие элементы в FictionBook имеют дополнительные параметры — атрибуты.Атрибут alignВыравнивание текста в ячейке таблицы.Используется в элементах: td, th, trЗначение: фиксированное; left, right, center, justifyЗначение по умолчанию: leftАтрибут altНазначение


Экспорт атрибутов

Из книги Технология XSLT автора Валиков Алексей Николаевич

Экспорт атрибутов В завершение предшествующей дискуссии необходимо обсудить вопрос об экспорте атрибутов. Рассмотренный в этой лекции класс POINT имеет атрибуты x и y и экспортирует их клиентам, также как и функции rho и theta. Для получения значения атрибута некоторого


1.3. Установка атрибутов

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

1.3. Установка атрибутов Для того чтобы ваша схема последовательной цепи точно соответствовала образцу на рис. 1.5, нужно дать сопротивлениям и источнику напряжения необходимые имена и указать их характеристики. При работе с редактором SCHEMATICS имена, значения и другие


Написание значений атрибутов

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Написание значений атрибутов В XSLT есть несколько способов написать значения атрибутов в выходные документы, и наиболее мощный — это создать атрибуты с нуля при помощи элемента <xsl:attribute>, как мы увидим в главе 6.Однако можно также во многих случаях использовать шаблоны


Выбор атрибутов

Из книги автора

Выбор атрибутов Как было показано в главе 3, «Создание и применение шаблонов», можно выбирать атрибуты, если предварять их имена префиксом @. Вы уже работали с атрибутом UNITS, который поддерживают большинство детей элементов <PLANET>:<PLANET> <NAME>Earth</NAME> <MASS UNITS="(Earth =


Узлы атрибутов

Из книги автора

Узлы атрибутов Атрибутам того или иного элемента соответствуют узлы атрибутов. Считается, что узел элемента является родителем узла своего атрибута, но вместе с тем узел атрибута не является дочерним узлом узла его элемента. Такая ситуация несколько отличает дерево


Именованные наборы атрибутов

Из книги автора

Именованные наборы атрибутов Элемент xsl:attribute-set Синтаксис элемента определяется следующей конструкцией:<xsl:attribute-set name="имя" use-attribute-sets="имена"> <!-- Содержимое: несколько элементов xsl:attribute --></xsl:attribute-set>Для того чтобы упростить создание в элементах целых наборов


Специальные ограничения в статическом SQL

Из книги автора

Специальные ограничения в статическом SQL Включающий язык встроенных приложений не может использовать или распознавать малые точности типов данных NUMERIC или DECIMAL С дробной частью, когда они внутренне хранятся как типы SMALLINT или INTEGER. для устранения такой проблемы в любой


Селекторы атрибутов

Из книги автора

Селекторы атрибутов CSS позволяет создавать правила, сопоставляемые элементам с атрибутами, определенными в исходном коде HTML-документа. Селекторы атрибутов могут сопоставляться в следующих четырех случаях.• [att] – если для элемента установлен атрибут att независимо от