Portée de la publication
Des systèmes d'accès distant différents possèdent différentes manières de décider quels membres et quels types de membres peuvent être utilisés à distance. .NET Remoting expose les objets à d'autres domaines d'application comme s'ils étaient locaux, à l'exception des éléments suivants :
Membres statiques.
Les méthodes et les champs statiques ne sont jamais distants et l'accès aux champs se fait par l'intermédiaire de la mémoire directe. Cela signifie que .NET Remoting traite toujours des membres d'instance, quelle que soit leur forme.
Champs d'instance et accesseurs.
Pour les champs d'instance et les méthodes d'accesseur, le système insère une vérification au moment de l'exécution pour déterminer si l'objet est un proxy. S'il ne s'agit pas d'un proxy, l'accès au champ est direct. Dans le cas contraire, le proxy fournit les accesseurs à l'appelant.
Méthodes privées.
Les méthodes privées ne peuvent pas être distantes. Vous ne pouvez pas envelopper et passer un délégué à une méthode privée à distance.
Délégués.
Les délégués sont des objets marshalés par valeur. L'objet au sein du délégué peut correspondre à n'importe quel type d'objet accessible à distance (un objet sérialisable, un objet MarshalByRefObject ou un objet ContextBoundObject). La seule exception est qu'un délégué de méthode d'interface ne peut pas être distant. Le délégué enveloppe l'implémentation de la méthode d'interface, ce qui exige que les informations de type du client soient accessibles au serveur.
Substitution des méthodes sur l'objet.
Pour des raisons de performance, les méthodes virtuelles sur les méthodes Object s'exécutent toujours localement dans le domaine d'application dans lequel elles sont appelées. Les appels des méthodes suivantes ne seront adressés qu'à l'objet distant, lorsque ces méthodes ont été substituées sur l'objet distant :
Equals
Cette méthode virtuelle s'exécute à distance si elle est substituée.
GetHashCode
Cette méthode s'exécute localement.
ToString
Cette méthode virtuelle s'exécute à distance si elle est substituée.
Equals (version statique).
Cette méthode s'exécute localement.
MemberwiseClone
Cette méthode s'exécute localement.
Voir aussi
Objets accessibles à distance et objets non accessibles à distance | MarshalByRefObject | ContextBoundObject | Object