Поделиться через


Предоставление компонентов .NET Compact Framework для модели COM

Обновлен: Ноябрь 2007

Компоненты .NET Compact Framework можно предоставить машинному коду, однако существует разница в этом взаимодействии, если сравнивать с полной версией .NET Framework.

Предоставление управляемых компонентов

Управляемые компоненты .NET Compact Framework можно предоставить для приложений, написанных в машинных кодах. Этот процесс включает следующие задачи:

  • Создайте управляемые типы, принимая во внимание программирование COM. Например, не используйте универсальные типы.

  • Определите функциональные возможности, которые нужно предоставить в управляемом интерфейсе, и управляемый объект, реализующий этот интерфейс. с учетом следующих рекомендаций:

    • Используйте атрибуты GUID, InterfaceType и ComVisible для управляемого интерфейса.

    • Используйте атрибут ClassInterface(ClassInterfaceType.None) в управляемом объекте.

  • Создайте собственные определения управляемых типов.

  • Передайте управляемый объект в машинный код как интерфейс COM. Затем можно вызвать управляемые функции, реализованные управляемым объектом, из машинного кода с помощью интерфейса COM.

.Отличия .NET Compact Framework

Чтобы вызвать управляемые функции .NET Compact Framework из машинного кода, сначала нужно использовать среду выполнения для маршалирования управляемого интерфейса или делегата в машинный код. Это означает, что нужно всегда начинать в управляемом коде (с управляемым исполняемым файлом), чтобы предоставить управляемые компоненты в машинный код.

Следующее взаимодействие с машинным кодом не поддерживается платформой .NET Compact Framework:

  • Использование средства регистрации сборки, такого как Regasm.exe, для клиентов COM для использования управляемого компонента как класс COM.

  • Активация управляемых типов из COM.

  • Размещение среды выполнения из машинного кода.

  • Размещение элементов управления ActiveX. .NET Compact Framework не поддерживает класс AxHost и невозможно использовать Microsoft Visual Studio 2005 и конструктор, чтобы установить в качестве родительского элемент управления ActiveX в управляемую форму. Однако данное взаимодействие COM поддерживается в платформе .Net Compact Framework, существует инфраструктура для построения собственного узла контейнера ActiveX.

  • Инициализация COM для использования однопотоковых контейнеров.

  • Автоматическое создание интерфейсов классов. Необходимо включить в оболочку функциональные возможности, которые нужно представить в машинный код в явном интерфейсе.

  • Автоматическое создание идентификаторов GUID. Необходимо присвоить каждому интерфейсу явный идентификатор guid, чтобы предоставить его в машинный код.

Атрибуты времени разработки для предоставленных управляемых компонентов

Можно обеспечить атрибуты времени разработки для предоставления управляемых компонентов модели COM. .NET Compact Framework поддерживает подмножество атрибутов, доступных в полной версии .NET Framework, включая следующие:

См. также

Другие ресурсы

Взаимодействие в платформе .NET Compact Framework