Condividi tramite


Marshalling personalizzato

Un gestore di marshalling costituisce essenzialmente un ponte tra le funzionalità della vecchia e della nuova interfaccia. Il marshalling personalizzato consente ai client progettati per interagire con la vecchia interfaccia di funzionare anche con server che implementano solo la nuova interfaccia. Il marshalling personalizzato consente inoltre al client progettati per interagire con la nuova interfaccia di funzionare anche con server che espongono la vecchia interfaccia.

Invece di utilizzare il gestore di marshalling di interoperabilità, è possibile progettare un gestore di marshalling personalizzato quando un'interfaccia richiede comportamenti di marshalling diversi o espone se stessa a COM (Component Object Model) in un modo diverso. L'utilizzo di un gestore di marshalling personalizzato consente di ridurre al minimo le problematiche derivanti dalla diversità tra nuovi componenti .NET Framework e componenti COM esistenti.

Si immagini ad esempio di sviluppare un'interfaccia gestita denominata INew. Quando questa interfaccia viene esposta a COM tramite un oggetto COM Callable Wrapper standard, dispone degli stessi metodi dell'interfaccia gestita e utilizza le regole di marshalling incorporate nel gestore di marshalling di interoperabilità. Si immagini ora che un'interfaccia COM nota denominata IOld fornisca già le stesse funzionalità dell'interfaccia INew. L'introduzione di un gestore di marshalling personalizzato consente di fornire un'implementazione non gestita di IOld che si limita a delegare le chiamate all'implementazione gestita dell'interfaccia INew. Il gestore di marshalling personalizzato funge essenzialmente da ponte tra le interfacce gestita e non gestita.

Si noti che i gestori di marshalling personalizzati non vengono richiamati quando viene eseguita una chiamata dal lato gestito al lato non gestito in un'interfaccia di solo invio.

Argomenti correlati

Titolo

Descrizione

Definizione del tipo di marshalling

Viene descritto come preparare le interfacce incluse nella configurazione di un gestore di marshalling personalizzato.

Implementazione dell'interfaccia ICustomMarshaler

Vengono descritte le opzioni disponibili per la preparazione di un gestore di marshalling personalizzato.

Utilizzo di un gestore di marshalling sostitutivo

Viene descritto come utilizzare l'attributo MarshalAsAttribute per inserire un gestore di marshalling personalizzato.

Marshalling di interoperabilità

Viene descritto il marshalling per l'interoperabilità COM e platform invoke.

Riferimenti

System.Runtime.InteropServices.ICustomMarshaler

System.Runtime.InteropServices.MarshalAsAttribute