Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 142

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 136 137 138 139 140 141 < 142 > 143 144 145 146 147 148 .. 320 >> Следующая

Атрибут Назначение
Assem blyCompanyAttribute Информация о компании
AssemblyConfigu ratonAttribute Служебная информация о назначении сборки, например
retail (коммерческая версия) или debug (отладочная
версия)
Assem blyOopyrightAttri bute Информация о прзвах на сборку
Assem Ыу DescrlptionAttribute Дружественное текстовое описание сборки
-Assem blylnformationaiVersionACl bute Дополнителвная информация о сборке (например, номер
версии коммерческого продукта)
// Типов ulong в CLS не предусмотрено public class Winnebago
public Wi.inebagu(.{}
public ulong notCompliant;
}
то компилятор выдаст сообщение об ошибке (рис. 7.13).
Как работать с атрибутами в процессе выполнения программы 341
Атрибут
Назначение
Assem biyProductAttribute AssemblyTrademarkAttrtbute AssemblyCultureAttri bute
Assem bryKeyFileAttribute Assem blyKeyNameAttribute AssemblyOperationSystemAttribute
bute
Assem blyVersionArb bute
Информация о программном продукте
Информация о торговой марке
Информация о естественном языке, поддерживаемом сборкой
Информация о имени файла с парой открытый/закрытый ключ, использованной для создания цифровой подписи сборки (у сборокдля общего пользования)
Информация о имени контейнера с парой открытый/ закрытый ключ (если такая пара вместо файла находится в контейнере CSP)
Информация об операционной системе, для работы в которой предназначена данная сборка
Информация о процессоре, для которого рассчитано использование данной сборки
Определяет номер версии сборки
Как работать с атрибутами в процессе выполнения программы
И наконец, последняя тема этой главы! Как мы уже видели, атрибуты в процессе выполнения программы можно получать при помощи класса Туре. Поэтому при; ли приведенный ниже код покажется удивительным: // Рефлексия для пользовательских атрибутов
publ {
class AtiRearie-
public static int Main(str:ng;] arg:;!
{
Il Получаем объект класса Туре для Winnebago
Type t = typeof(Winnebago):
// Получаем все атрибуты данной сборки
object!] customAtts = t.GetCustomAttributes(false):
Il Выводим информацию о каждой атрибуте foreacfi(VehicleDescriptionAttribute v in customAtts) Console.Wr і teL1пе(V.Des с):
return 0;
Результат работы программы представлен на рис. 7.14.
iO'ACSharpBeokXLabsXChapterБ\ftUReode»V,btn\t>.„ ЯВИ
ftuery long, slow but feature rich Press any fcey to continue
Рис. Рефлексия дли пользовательских атрибутов
342 Глава 7 • Рефлексия типов и программирование с использованием атрибутов
Как можно догадаться, метод і vpe . uetCustcmAUr iouLes( J возвращает массив объектов, каждому из которых соответствует атрибут. Таким образом, мы получаем список всех атрибутов, относящихся к объекту, который представлен объектом класса Туре. Далее уже несложно определить, есть ли у нас определенный атрибут, каково его значение и т. п.
Код приложений Custom Attn AttReader можно найти в подкаталоге Chapter 7.
Подведение итогов
Рефлексия - это интереснейший аспект объектно-ориентированного программирования. В мире .NET рефлексия организуете* при помощи класса System.Туре и типов пространства имен System.Reflection. При помощи рефлексии мы можем словно положить интересующий вас тип «под увеличительное стекло» и получить о нем всю возможную информацию — и все это программным образом, во время работы приложения.
Типы пространства имен System. Reflection. Emit позволяют создавать динамические сборки (вместе с кодом IL «в сыром виде») «налету» — в процессе выполнения программы. Динамические сборки создаются в оперативной памяти и могут быть сохранены на диске.
Глава заканчивается рассмотрением особенностей программировании, основанного на атрибутах. При помощи встроенных и пользовательских атрибутов мы можем управлять содержимым метаданных типов и манифеста. Несмотря на то что, как правило, в большинстве случаев без пользовательских атрибутов можно обойтись, встроенные атрибуты незаменимы во многих ситуациях (например, для организации взаимодействия между сборками NET и традиционными СОМ-серверами).
Окна становятся лучше: введение BWindows.Forms
Если вы хорошо изучили предыдущие семь глав, го к этому моменту вы обладает* солидными знаниями в области С# и всей платформы .NET. Теперь вы можете
использовать приобретенные знания для создания реальных приложений.
Скорее всего, вы заинтересованы в создании приложений, которые будут обладать графическим интерфейсом пользователя (в отличие от консольных приложении, которые использовались до настоящего момента нами для тестовых целей). Эта глава поможет освоиться в пространстве имен System. Wi л; low;,. Forms. Мы уз;з;і ем, как создавать главное окно приложения (пользовательский объект, произвол ный от Form), и познакомимся с сопутствующими классами, такими как Меті Item Tool Ваг, StatusBar и Application. В этой главе также будут рассмотрены вопросы, связанные с обработкой ввода пользователя (то есть событий мыши и клавиатуры) в приложениях с графическим интерфейсом.
Далее на основе изученного материала мы создадим тестовое графическое utpv" • ложение, которое будет сохранять пользовательские настройки в системном реестре и записывать связанную с его применением информацию в журнал событий Window 2000. Материал этой главы позволит нам подготовиться к восприятию двух следующих гдж, посвященных GDI+ и работе с элементами управления. После изучения этих трех глав мы будем вполне в состоянии создавать приложения .NETc изощренным графическим интерфейсом.
Предыдущая << 1 .. 136 137 138 139 140 141 < 142 > 143 144 145 146 147 148 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100