Partage via


MarshalByRefObject.MemberwiseClone(Boolean) Méthode

Définition

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

protected:
 MarshalByRefObject ^ MemberwiseClone(bool cloneIdentity);
protected MarshalByRefObject MemberwiseClone (bool cloneIdentity);
override this.MemberwiseClone : bool -> MarshalByRefObject
Protected Function MemberwiseClone (cloneIdentity As Boolean) As MarshalByRefObject

Paramètres

cloneIdentity
Boolean

false pour supprimer l'identité de l'objet MarshalByRefObject actuel, ce qui provoque l'assignation d'une nouvelle identité à l'objet lorsqu'il est marshalé au-delà d'une limite de communication à distance. La valeur false est généralement appropriée. true pour copier l'identité de l'objet MarshalByRefObject actuel vers son clone, ce qui entraîne le routage des appels de clients de communication à distance vers l'objet serveur distant.

Retours

Copie superficielle de l'objet MarshalByRefObject actuel.

Remarques

La MemberwiseClone(Boolean) méthode crée une copie superficielle en créant un nouvel MarshalByRefObject objet, puis en copiant les champs non statiques de l’objet actuel MarshalByRefObject vers le nouvel objet. Si un champ est un type valeur, une copie bit par bit du champ est effectuée. Si un champ est un type référence, la référence est copiée, mais pas l’objet référencé ; par conséquent, l’objet d’origine et son clone font référence au même objet.

Par exemple, considérez un MarshalByRefObject objet appelé X qui fait référence aux objets A et B. L’objet B, à son tour, fait référence à l’objet C. Une copie superficielle de X crée un nouvel objet X2 qui fait également référence aux objets A et B. En revanche, une copie approfondie de X crée un nouvel objet X2 qui fait référence aux nouveaux objets A2 et B2, qui sont des copies de A et B2, à leur tour, référence le nouvel objet C2, qui est une copie C. Utilisez une classe qui implémente l’interface ICloneable pour effectuer une copie profonde ou superficielle d’un objet.

L’identité d’un MarshalByRefObject objet est définie en tant qu’objet serveur distant qui est la cible d’un appel client de communication à distance. Par défaut, le clone au niveau des membres d’un MarshalByRefObject objet a la même identité que l’objet d’origine, ce qui n’est généralement pas le comportement correct pour les clones d’objets côté serveur qui sont marshalés au-delà d’une limite de communication à distance côté client. Spécifiez false, ce qui est généralement approprié, pour supprimer l’identité du clone et faire en sorte qu’une nouvelle identité soit affectée lorsque le clone est marshalé au-delà d’une limite de communication à distance, ou true pour que le clone conserve l’identité de l’objet d’origine MarshalByRefObject . La MemberwiseClone(Boolean) méthode est destinée à être utilisée par les développeurs implémentant des objets serveur distant.

S’applique à