Предоставление COM-клиентам доступа к компонентам .NET Framework
Обновлен: Ноябрь 2007
Для разработчиков написание типа .NET и использование этого типа из неуправляемого программного кода — это разные операции. В этом разделе дается несколько советов по написанию управляемого кода, взаимодействующего с COM-клиентами.
Уточнение типов .NET для взаимодействия.
Все управляемые типы, методы, свойства, поля и события, доступ к которым нужно предоставить COM-объектам, должны быть открытыми. Типы должны использовать открытый конструктор по умолчанию, представляющий собой единственный конструктор, который можно вызывать с помощью COM.
Применение атрибутов взаимодействия.
Настраиваемые атрибуты в управляемом коде могут расширять возможности взаимодействия для соответствующего компонента.
Упаковка сборки для модели COM.
Разработчикам COM-приложений могут потребоваться пояснения, касающиеся процедур обращения к сборке и ее развертывания.
Кроме того, в этом разделе определяются задачи, связанные с использованием управляемого типа из COM-клиента.
Использование управляемого типа из модели COM
Регистрация сборок в COM-приложении.
Типы в сборке (и библиотеки типов) должны быть зарегистрированы во время разработки. Если программа установки не регистрирует сборку автоматически, разработчики COM-приложений должны использовать для регистрации программу Regasm.exe.
Обращение к типам .NET из COM-приложений.
Для обращения к типам в сборке разработчики COM-приложений могут использовать свои обычные средства и способы.
-
Разработчики COM-приложений могут вызывать методы объекта .NET таким же образом, как и методы любого неуправляемого типа. Например, API-интерфейс CoCreateInstance модели COM активирует объекты .NET.
Развертывание приложения для доступа COM.
Сборка со строгим именем может быть установлена в глобальном кэше сборок и требует подписи издателя. Сборки, для которых не задан режим строгих имен, должны быть установлены в папке каталоге приложения клиента.
См. также
Основные понятия
Пример COM-взаимодействия. COM-клиент и сервер .NET