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

 

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

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

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 247 248 249 250 251 252 < 253 > 254 255 256 257 258 259 .. 320 >> Следующая

Однако всего этого можно и не делать. В составе .NET SDK поставляется утилита regsvcs.exe, которая выполняет все эти операции автоматически. Если быть точным, то она выполняет следующие действия:
• загружает сборку в оперативную память;
• заносит необходимую информацию реестр операционной системы (вместо regasm.exe);
• генерирует и регистрирует библиотеку типов (вместоиЬехр.ехе);
• устанавливает сгенерированную библиотеку типов в каталогСОМ+;
• делает все это в соответствии с указаниями, которые мы поместили в код сборки .NET в виде атрибутов.
Для утилиты regsvcs.exe предусмотрено множество параметров командной строки, но простейший вариант ее применения таков:
regsvcs fc DotNetCwPlusServer.d 11
626 Глава 12 • Взаимодействие с унаследованным программным кодом
¦ D:\ W INN T \ A*sembly
rie ?dit \jjm F jvottK Jods
+- P я* - ¦». - LbJ ! 'ASearth UFotdera Q j % j2f "
Ad*** |D 0:\WINNnAj!tmWy
Global Assembly Name I Typs | Verston I Culture I й)Ы »I
iUOCurtomMarshalers 1.0.2615.0 b03f—I 1.0.0.0 Soll 'l.O.O.O bfal . і 7.0,0.0
jAEnvDTE
4J '
I - .
Рис. 12.36. Устанавливаем сборку для работы под СОМ-1- в GAC
Проверяем установку при помощи Component Services Explorer
После того как все операции выполнены, мы можем убедиться в том, что приложение действительно помещено в каталог СОМ+, Для этого можно использовать утилиту, которая называется Component Services Explorer (рис. 12.37).
Тте Coniponent: Services
frnsofe
j Acton IJ 4= ¦+ і ш(Б I X if Hі 12
Tree CsmiKxierit!; 1 -^————- 1.1
! CCW+ QC Dead Letter QuCJiJ I Щі COM+ Ubtties ] ^ DocNetComPlus5efver . ваИШ J B ¦ © OotNetComPlusSen . Й (B Interfaces IB "Ш Subscriptions ¦ DotNetCom... ComPlusType
' I' ¦I
Рис. 12.37. Наше приложение .KCT, имеющее значок, напоминающий таблетку аспирина, в окне Component Services Explorer
Если открыть свойства нашего приложения, то можно убедиться в том, что наши атрибуты были восприняты как положено. Например, откроем вкладку Activation (Активация) свойств нашего приложения (рис. 12.38).
Параметр /fc означает «find or create» (найди или создай) - то есть если такое приложение СОМ+ не обнаружится в каталоге СОМ+, оно будет туда помещено. Мы можем также указать в качестве параметра командной строки имя генерируемой промежуточной библиотеки типов. Если оно определено не будет (как в нашем случае), имя генерируемой библиотеке будет присвоено автоматически на основе имени сборки .NET. Последнее, что нам осталось сделать, - поместить сборку .NET в GAC, если мы еще не сделали этого раньше (рис. 12.36).
Подведение итогов 627
COMPlusAsseiiibly.MyQOMPlusType Properties
General | Transscuons | ьесмуШчЖж [ Concurrency | Advanced | P fcnabl« abject pootncj
-Dbject pcofeig---------—--——¦—-1
Minimum pool яге: Haarnum pool ж Creator, timeout (пир
t'1oo
60000
P Enabfeabject construction
rObjetl consliuelbn-—
Conslrucl« filing:
Г EnabeJusMn Tm« Activate
Г Cornpmert supports evemt and xSafctfcs
P Must be activatsrf rn caller's context
OK
Рис. 12.38. Отображение свойств приложения на вкладке Activation
Значения, которые показаны на этой вкладке, были сгенерированы на основе следующего кода нашего класса С#:
// Объекты этого класса mowhq будет объединять в пул [ObjectPooling(true. 5. IQO)] // Этот класс поддерживает строку конструирования [Constructi onEnabledAttribute(true) ]
public class СетР) us type : ServicedComponent. ICbjectConstruct {¦¦-}
Код приложения DolNi^ComPlusServei можно найти в подкаталоге Chapter 12,
Подведение итогов
,MET — это замечательная вещь. Однако очень часто приходится совместно использовать и сборки NLT, и модули с традиционным двоичным кодом. В NET предусмотрены разнообразные и мощные средства, которые позволяют коду успешно взаимодействовать с традиционным кодом (и наоборот).
В самом начале этой главы были рассмотрены службы PInvoke - наиболее примитивное средство из богатого набора .NET. Службы PInvoke позволяют производить вызовы к API Win32 и пользовательским модулям DLL.
Большая часть ;->тои главы была посвящена описанию того, как типы ,KET могут обращаться к традиционным СОМ-серверам. Как мы выяснили, для этого потребуется сгенерировать для интересующего нас СОМ-сервера промежуточную прокси-сборку RCW. Б прокси-сборке предусмотрены аналоги членов СОМ-сервера. При обращении к этим аналогам вызовы клиента .NET передаются исходному
Cancel
628 Глава 12 • Взаимодействие с унаследованным программным кодом
Далее в этой главе были рассмотрены средства для решения обратной задачи — как традиционные клиенты СОМ могут обратиться к сборке .NET. Проблема решается очень похожими средствами — необходимо создать промежуточный модуль CCW, который будет перенаправлять запросы традиционных клиентов СОМ сборке .NET.
В самом конце этой главы мы рассмотрели еще один важный вопрос — как при помощи средств .NET создавать приложения, работающие под управлением среды СОМ+. Эта задача решается при помощи типов из пространства имен Sys-tem.EnterpriseServicesHyTHJiHTbi regsvcs.exe.
Предыдущая << 1 .. 247 248 249 250 251 252 < 253 > 254 255 256 257 258 259 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100