Как создать COM в C# |
![]() |
![]() |
14.12.2009 | |
Рассмотрим как создать COM-объект из C# в среде .NET Решение 1. Определить интерфейс для класса, описать методы, которые будут реализованы в нашем классе. Создать GUID-ды утилитой guidgen.exe, которая находится по умолчанию в папке "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\guidgen.exe". [Guid("01D10028-A89D-47ee-8048-C27B6DD4BE63")] 2. Определить интерфейс для COM событий. // Events 3. Описать класс, с реализующий интерфейсы. /// <summary> } 4. Включить в свойствах проекта опцию Make Assembly COM-Visible. Это же относится ко всем библиотекам, которые будет использовать к наш COM-адаптер. Можно пометить сборку как COM-импортируемую: на закладке свойств проекта включить в разделе Build флаг Register for COM interop. Это позволит вам регистрировать сборку сразу в реестре в момент компиляции. Хотя, у меня возникали проблемы с этой опцией. Я регистрировал библиотеку адаптера с помощью regasm.exe. 5. Подписать сборку уникальными именем (StrongName). На закладке свойств проекта: Properties - Signing - Sign the Assembly - далее, нужно указать имя файла ключа. Пароль указывать не обязательно. Будет автоматически создан файл *.snk, в данном случае, было указано имя TesLib1.snk 6. В файле AssemblyInfo.cs нужно указать параметр, содержащий имя файла подписи: [assembly: AssemblyKeyFile("TesLib1.snk")] Этот пункт желателен, но не обязателен. 7. Откомпилировать нашу сборку и получим библиотеку *.dll готовую для регистрации в системе как COM-объект. 8. Зарегистрировать в системе библиотеку с помощью утилиты regasm.exe, которая находится по умолчанию в папке "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe". Для регистрации нужно в консоли выполнить команду: RegAsm.exe TestLib1.dll 9. Опубликовать библиотеку COM-адаптера и всех библиотек сборки, на которые ссылается в своей работе адаптер, в GAC. Внимание! При повторной сборке библиотеки COM-адаптера, предварительно нужно удалить из GAC сопутствующие библиотеки адаптера. Если этого не сделать, в папке BIN\Release (Debug) появится только сама библиотека адаптера. В завершение, можно проверить работу нашего COM-объекта с помощью простого HTA-приложения, которое находится в папке bin доступного для загрузки примера. Я хочу выразить благодарность Shripad Kulkarni, по мотивам статьи которого я написал эту заметку. |
|
Последнее обновление ( 31.03.2010 ) |
< Пред. | След. > |
---|