Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Применение пользовательских атрибутов
Применение пользовательских атрибутов
После получения VehicleDescriptionAttribute из System.Attribute вы можете снабжать свои транспортные средства такими аннотациями, какими пожелаете.
// Назначение описания с помощью 'именованного свойства'.
[Serializable,
VehicleDescription(Description = "Мой сияющий Харлей")]
public class Motorcycle {
//…
}
[SerializableAttribute]
[ObsoleteAttribute("Класс устарел, используйте другой транспорт!"), VehicleDescription("Старая серая кляча, она уже совсем не та…")]
public class HorseAndBuggy {
//…
}
[VehicleDescription("Большое, тяжелое, но высокотехнологичное авто"
public class Winnebago {
//…
}
Обратите внимание на то, что описание класса Motorcycle здесь указано с помощью нового элемента синтаксиса, называемого именованным свойством. В конструкторе первого атрибута [VehicleDescription] соответствующее значение System.String устанавливается с помощью пары "имя-значение". При отображении этого атрибута внешним агентом соответствующее значение передается свойству Description (синтаксис именованного свойства здесь корректен только в том случае, когда атрибут предлагает перезаписываемое свойство .NET). В противоположность этому типы HorseAndBuggy и Winnebago не используют синтаксис именованного свойства, а просто передают строковые данные в пользовательский конструктор.
После компиляции компоновочного блока AttributedCarLibrary можно использовать ildasm.exe, чтобы увидеть метаданные с описанием добавленного типа. Так, на рис. 12.8 показано встроенное описание типа Winnebago.
Рис. 12.8. Встроенные данные описания транспортного средства
- Глава 7 Первичное топливо: производство и применение
- Примеры метрик для измерения атрибутов
- Создание пользовательских атрибутов
- Применение Ajax и jQuery в MVC Framework
- 11.7. Применение Unix-моделей проектирования интерфейсов
- Расширенные возможности указания пользовательских планов
- 7. Унификация атрибутов
- Еще о создании пользовательских меню
- Применение функции scanf( )
- Применение PHP-технологий в программе HtmlPad
- 17.6 Применение агентов новостей для настольных систем
- 2.3. Эмпирическая модель обучения Дэвида Колба и ее применение в практике бизнес-тренинга