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.
Nei diversi sistemi di comunicazione remota si decide in modo diverso quali membri e quali tipi di membro possano essere utilizzati in modalità remota. In .NET Remoting gli oggetti vengono esposti ad altri domini applicazione come se fossero locali, con le seguenti eccezioni:
Membri statici.
Campi e metodi static non vengono mai utilizzati in modalità remota e l'accesso ai campi avviene tramite la memoria diretta. In altre parole, in .NET Remoting vengono sempre gestiti membri di istanza di qualche tipo.
Campi di istanza e funzioni di accesso.
Per i campi di istanza e i metodi di accesso, viene inserito un controllo in fase di esecuzione per verificare se l'oggetto è un proxy. In caso contrario, l'accesso ai campi è diretto. Altrimenti, il proxy fornisce funzioni di accesso al chiamante.
Metodi Private.
Non è possibile utilizzare i metodi Private in modalità remota. Non è possibile inserire un delegato in un wrapper e passarlo a un metodo Private in modalità remota.
Delegati.
Sono oggetti con marshalling per valore. L'oggetto all'interno del delegato può essere qualsiasi oggetto remotizzabile, come un oggetto serializzabile, un oggetto MarshalByRefObject o un oggetto ContextBoundObject. L'unica eccezione è rappresentata dal fatto che non è possibile utilizzare correttamente in modalità remota un delegato a un metodo di interfaccia. Il delegato fungerà da wrapper dell'implementazione del metodo di interfaccia, richiedendo che le informazioni sul tipo del client siano disponibili per il server.
Override dei metodi su Object.
Per motivi di prestazioni, i metodi virtual su metodi Object vengono sempre eseguiti localmente nel dominio applicazione in cui sono chiamati. Le chiamate dei metodi seguenti verranno passate all'oggetto remoto soltanto quando i metodi saranno stati sottoposto a override su tale oggetto:
Equals
questo metodo virtual verrà eseguito in modalità remota se sottoposto a override.
GetHashCode
questo metodo viene eseguito localmente.
ToString
questo metodo virtual verrà eseguito in modalità remota se sottoposto a override.
Equals (versione static)
questo metodo viene eseguito localmente.
MemberwiseClone
questo metodo viene eseguito localmente.
Vedere anche
Oggetti remotizzabili e non remotizzabili | MarshalByRefObject | ContextBoundObject | Object