Marshalling per valore
Gli oggetti sono validi esclusivamente nel dominio di applicazione in cui sono stati creati. Qualsiasi tentativo di passare l'oggetto come parametro o di restituirlo come risultato avrà esito negativo a meno che l'oggetto non derivi da MarshalByRefObject o sia contrassegnato come Serializable. Se l'oggetto è contrassegnato come Serializable, verrà automaticamente serializzato, trasferito da un domino di applicazione a un altro e deserializzato per creare una copia esatta dell'oggetto nel secondo dominio di applicazione. Questo processo viene in genere denominato marshalling per valore.
Quando un oggetto deriva da MarshalByRefObject, un riferimento all'oggetto, anziché l'oggetto stesso, verrà passato da un dominio di applicazione a un altro. È inoltre possibile contrassegnare un oggetto che deriva da MarshalByRefObject come Serializable. Quando questo oggetto viene utilizzato con i servizi remoti, il formattatore preposto alla serializzazione, preconfigurato con un selettore di surrogati, SurrogateSelector, assume il controllo del processo di serializzazione e sostituisce tutti gli oggetti derivati da MarshalByRefObject con un proxy. In mancanza di SurrogateSelector, l'architettura di serializzazione segue le regole di serializzazione standard descritte in Passaggi del processo di serializzazione.
Vedere anche
Altre risorse
Nozioni di serializzazione
Oggetti remoti
Serializzazione XML e SOAP