Предоставление компонентов .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, включая следующие: