Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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: