Verfügbar machen von .NET Compact Framework-Komponenten in COM
Aktualisiert: November 2007
Sie können .NET Compact Framework-Komponenten für nativen Code verfügbar machen. Gegenüber dem vollständigen .NET Framework gibt es im Hinblick auf diese Interoperabilität jedoch Unterschiede.
Verfügbarmachen verwalteter Komponenten
Sie können verwaltete .NET Compact Framework-Komponenten für systemeigene Anwendungen angeben. Der Prozess umfasst die folgenden Aufgaben:
Entwerfen Sie die verwalteten Typen unter Berücksichtigung der COM-Programmierung. Verwenden Sie z. B. keine generischen Typen.
Definieren Sie die Funktionalität, die in einer verwalteten Schnittstelle verfügbar gemacht werden soll, und lassen Sie diese Schnittstelle durch das verwaltete Objekt implementieren. Folgende Vorgehensweise wird empfohlen:
Verwenden Sie die Attribute GUID, InterfaceType und ComVisible für die verwaltete Schnittstelle.
Verwenden Sie das ClassInterface(ClassInterfaceType.None)-Attribut im verwalteten Objekt.
Erstellen Sie systemeigene Definitionen der verwalteten Typen.
Übergeben Sie das verwaltete Objekt als COM-Schnittstelle an systemeigenen Code. Anschließend können Sie verwaltete Funktionen, die vom verwalteten Objekt implementiert wurden, über die COM-Schnittstelle aus systemeigenem Code aufrufen.
Unterschiede zu .NET Compact Framework
Um verwaltete .NET Compact Framework-Funktionen aus systemeigenem Code aufzurufen, müssen Sie zuerst eine verwaltete Schnittstelle oder einen Delegaten mithilfe der Laufzeit in systemeigenen Code marshallen. Dies bedeutet, dass Sie immer mit verwaltetem Code (mit einer verwalteten ausführbaren Datei) beginnen, um verwaltete Komponenten für systemeigenen Code verfügbar zu machen.
Die folgende Interoperabilität mit systemeigenem Code wird von .NET Compact Framework nicht unterstützt:
Verwenden eines Assemblyregistrierungstools (z. B. Regasm.exe) für COM-Clients, um eine verwaltete Komponente als COM-Klasse einzusetzen
Aktivieren verwalteter Typen aus COM
Hosten der Laufzeit aus systemeigenem Code
Hosten von ActiveX-Steuerelementen. .NET Compact Framework bietet keine Unterstützung für die AxHost-Klasse, und Sie können Microsoft Visual Studio 2005 und den Designer nicht dazu verwenden, um ein ActiveX-Steuerelement als übergeordnetes Element des verwalteten Formulars festzulegen. Die COM-Interop-Unterstützung in .NET Compact Framework bietet jedoch die infrastrukturellen Voraussetzungen, um einen eigenen ActiveX-Containerhost zu erstellen.
Initialisieren von COM zur Verwendung von Singlethreadapartments
Automatisches Generieren von Klassenschnittstellen Sie müssen die Funktionalität, die für systemeigenen Code verfügbar gemacht werden soll, in einer expliziten Schnittstelle einschließen.
Automatisches Generieren von GUIDs. Sie müssen jeder Schnittstelle eine explizite GUID zuweisen, um sie für systemeigenen Code verfügbar zu machen.
Entwurfszeitattribute für verfügbar gemachte verwaltete Komponenten
Sie können Entwurfszeitattribute angeben, mit denen verwaltete Komponenten für COM verfügbar gemacht werden. .NET Compact Framework unterstützt eine Teilmenge der im vollständigen .NET Framework verfügbaren Attribute, darunter die folgenden: