P/Invoca in Mono
Domanda
Qual è lo stato attuale di Monol'implementazione di Platform Invoke su Linux?E su Solaris?
Soluzione
Funzionante, utilizzabile e stabile.È ben testato poiché molte delle funzionalità di basso livello di mono devono essere inviate al sistema operativo sottostante.
Ci sono alcuni P/Invoca estensioni rispetto all'implementazione di Microsoft .Net (dopo tutto si occupano di una singola famiglia di sistemi operativi e tre architetture al massimo).Il più notevole di questi sarebbe che le mappature delle librerie trasformano il nome della libreria in varianti specifiche del sistema operativo (ad es. mylib.dll
cerca mylib.so
su Linux, mylib.dylib
su OS X e così via) e tengono conto di varie altre convenzioni specifiche del sistema.C'è anche un DLLMap estensione di configurazione che può essere utilizzata se le traduzioni dei nomi predefinite non sono sufficienti.Di solito è conveniente avere la stessa API della libreria binaria esposta su diversi sistemi operativi, in modo che la migrazione tra piattaforme richieda solo modifiche nel codice C, non nella parte .Net.