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

MarshalByRefObject

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' MarshalByRefObject objet actuel 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 l’objet référencé n’est pas ; par conséquent, l’objet d’origine et son clone font référence au même objet.

Par exemple, imaginez 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 référence également les objets A et B. En revanche, une copie complète de X crée un nouvel objet x2 qui référence les nouveaux objets a2 et B2, qui sont des copies de A et B. B2, à son tour, fait référence au nouvel objet C2, qui est une copie C. Utilisez une classe qui implémente l' ICloneable interface 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 membre 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 à travers une limite de communication à distance du côté client. Spécifiez false , ce qui est généralement approprié, pour supprimer l’identité du clone et provoquer l’affectation d’une nouvelle identité lorsque le clone est marshalé à travers 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 qui implémentent des objets serveur distants.

S’applique à