Esposizione di componenti .NET Compact Framework a COM

Aggiornamento: novembre 2007

È possibile esporre i componenti .NET Compact Framework al codice nativo, ma in questa interoperabilità esistono differenze rispetto alla versione completa di .NET Framework.

Esposizione di componenti gestiti

È possibile fornire componenti .NET Compact Framework gestiti alle applicazioni native. Questo processo implica le seguenti attività:

  • Progettare i tipi gestiti considerando la programmazione COM. Non utilizzare, ad esempio, i tipi generici.

  • Definire la funzionalità che si desidera esporre in un'interfaccia gestita e implementare tale interfaccia mediante l'oggetto gestito. Si consiglia quanto segue:

    • Utilizzare gli attributi GUID, InterfaceType e ComVisible per l'interfaccia gestita.

    • Utilizzare l'attributo ClassInterface(ClassInterfaceType.None) sull'oggetto gestito.

  • Creare le definizioni native dei tipi gestiti.

  • Passare l'oggetto gestito al codice nativo come interfaccia COM. Sarà quindi possibile chiamare le funzioni gestite implementate dall'oggetto gestito dal codice nativo utilizzando l'interfaccia COM.

Differenze relative a .NET Compact Framework

Per chiamare le funzioni gestite di .NET Compact Framework dal codice nativo, è necessario utilizzare prima il runtime per effettuare il marshalling di un delegato o di un'interfaccia gestita nel codice nativo. Pertanto è necessario eseguire sempre l'avvio nel codice gestito, con un eseguibile gestito, al fine di esporre i componenti gestiti al codice nativo.

La seguente interoperabilità con il codice nativo non è supportata da .NET Compact Framework:

  • Utilizzo di uno strumento di registrazione degli assembly, quale Regasm.exe, perché i client COM utilizzino un componente gestito come classe COM.

  • Attivazione di tipi gestiti da COM.

  • Hosting del runtime dal codice nativo.

  • Hosting di controlli ActiveX. .NET Compact Framework non supporta la classe AxHost e non è possibile utilizzare Microsoft Visual Studio 2005 e la finestra di progettazione per associare un controllo ActiveX al form gestito. Tuttavia, dato il supporto per l'interoperabilità COM in .Net Compact Framework, esiste l'infrastruttura per generare l'host contenitore ActiveX.

  • Inizializzazione di COM per utilizzare gli apartment a thread singolo.

  • Generazione automatica di interfacce di classi. È necessario eseguire il wrapping della funzionalità che si desidera esporre al codice nativo in un'interfaccia esplicita.

  • Generazione automatica di GUID. È necessario assegnare a ogni interfaccia un guid esplicito per esporla al codice nativo.

Attributi Design-Time per componenti gestiti esposti

Per esporre a COM componenti gestiti, è possibile fornire attributi Design-Time. .NET Compact Framework supporta un sottoinsieme degli attributi disponibili nella versione completa di .NET Framework, inclusi i seguenti:

Vedere anche

Altre risorse

Interoperabilità in .NET Compact Framework