MarshalByRefObject.MemberwiseClone(Boolean) Metoda

Definice

Vytvoří kopii aktuálního objektu bez podstruktury MarshalByRefObject .Creates a shallow copy of the current MarshalByRefObject object.

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

Parametry

cloneIdentity
Boolean

false pro odstranění identity aktuálního MarshalByRefObject objektu, který způsobí přiřazení nové identity objektu, když je zařazen přes hranici vzdálené komunikace.false to delete the current MarshalByRefObject object's identity, which will cause the object to be assigned a new identity when it is marshaled across a remoting boundary. Hodnota false je obvykle vhodná.A value of false is usually appropriate. true pro zkopírování MarshalByRefObject identity aktuálního objektu do jeho klonu způsobí, že klient vzdáleného volání bude směrován do objektu vzdáleného serveru.true to copy the current MarshalByRefObject object's identity to its clone, which will cause remoting client calls to be routed to the remote server object.

Návraty

MarshalByRefObject

Kopie aktuálního objektu bez podstruktury MarshalByRefObject .A shallow copy of the current MarshalByRefObject object.

Poznámky

MemberwiseClone(Boolean)Metoda vytvoří neomezený opis vytvořením nového MarshalByRefObject objektu a následným zkopírováním nestatických polí aktuálního MarshalByRefObject objektu do nového objektu.The MemberwiseClone(Boolean) method creates a shallow copy by creating a new MarshalByRefObject object, and then copying the nonstatic fields of the current MarshalByRefObject object to the new object. Pokud je pole Typ hodnoty, je provedena bitová kopie pole.If a field is a value type, a bit-by-bit copy of the field is performed. Pokud je pole odkazový typ, je odkaz zkopírován, ale odkazovaný objekt není. Proto původní objekt a jeho klon odkazují na stejný objekt.If a field is a reference type, the reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object.

Zvažte například MarshalByRefObject objekt nazvaný X, který odkazuje na Objects a a b. Object B, a odkazuje na Object C. Bezhotová kopie X vytvoří nový objekt X2, který odkazuje také na objekty A a B. Naproti tomu hluboká kopie X vytvoří nový objekt X2, který odkazuje na nové objekty a2 a B2, které jsou kopiemi a a B. B2, a odkazuje na nový objekt C2, který je kopií C. použijte třídu, která implementuje ICloneable rozhraní k provedení hluboké nebo omezené kopie objektu.For example, consider a MarshalByRefObject object called X that references objects A and B. Object B, in turn, references object C. A shallow copy of X creates new object X2 that also references objects A and B. In contrast, a deep copy of X creates a new object X2 that references the new objects A2 and B2, which are copies of A and B. B2, in turn, references the new object C2, which is a copy C. Use a class that implements the ICloneable interface to perform a deep or shallow copy of an object.

Identita MarshalByRefObject objektu je definována jako objekt vzdáleného serveru, který je cílem volání vzdálené komunikace klienta.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Ve výchozím nastavení má kopírování členů klon MarshalByRefObject objektu stejnou identitu jako původní objekt, což obvykle není správné chování pro klonování objektů na straně serveru, které jsou zařazeny přes hranici vzdálené komunikace na stranu klienta.By default, the memberwise clone of a MarshalByRefObject object has the same identity as the original object, which is typically not the correct behavior for clones of server-side objects that are marshaled across a remoting boundary to the client side. Určete false , která je obvykle vhodná, aby se odstranila identita klonu, a způsobila přiřazení nové identity v případě, že je klonování na hranici vzdálené komunikace nebo true způsobí, že klon zachová identitu původního MarshalByRefObject objektu.Specify false, which is usually appropriate, to delete the identity of the clone and cause a new identity to be assigned when the clone is marshaled across a remoting boundary, or true to cause the clone to retain the identity of the original MarshalByRefObject object. Tato MemberwiseClone(Boolean) Metoda je určená pro vývojáře, kteří implementují objekty vzdálených serverů.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Platí pro