Condividi tramite


Cenni preliminari sul marshalling personalizzato

Il 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 in un modo diverso. L'utilizzo di un gestore di marshalling personalizzato consente di ridurre al minimo le problematiche derivanti dalla diversità tra componenti .NET e componenti COM esistenti.

Si immagini ad esempio di sviluppare un'interfaccia gestita denominata INew. Quando viene esposta a COM tramite un COM Callable Wrapper standard, l'interfaccia presenta gli 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 ben 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 su un'interfaccia di solo invio.

Vedere anche

Concetti

Definizione del tipo di marshalling
Implementazione dell'interfaccia ICustomMarshaler
Utilizzo di un gestore di marshalling sostitutivo