MarshalByRefObject.MemberwiseClone(Boolean) Methode

Definition

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.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

Parameter

cloneIdentity
Boolean

false zum Löschen der Identität des aktuellen MarshalByRefObject-Objekts. Dies führt dazu, dass dem Objekt eine neue Identität zugewiesen wird, wenn es über eine Remotegrenze gemarshallt wird.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. Der Wert false ist in der Regel geeignet.A value of false is usually appropriate. true, wenn die Identität des aktuellen MarshalByRefObject in dessen Klon kopiert werden soll. Das führt dazu, dass Remoteclient-Aufrufe an das Remoteserverobjekt weitergeleitet werden.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.

Gibt zurück

Eine flache Kopie des aktuellen MarshalByRefObject-Objekts.A shallow copy of the current MarshalByRefObject object.

Hinweise

Die MemberwiseClone(Boolean) -Methode erstellt eine flache Kopie, indem ein MarshalByRefObject neues-Objekt erstellt und dann die nicht statischen Felder des aktuellen MarshalByRefObject -Objekts in das neue-Objekt kopiert werden.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. Wenn ein Feld ein Werttyp ist, wird eine Bit-für-Bit-Kopie des Felds ausgeführt.If a field is a value type, a bit-by-bit copy of the field is performed. Wenn ein Feld ein Referenztyp ist, wird der Verweis kopiert, aber das Objekt, auf das verwiesen wird, nicht. Daher verweisen das ursprüngliche Objekt und der zugehörige Klon auf dasselbe 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.

Angenommen, ein MarshalByRefObject -Objekt mit dem Namen X verweist auf die Objekte a und B. Object B wiederum verweist auf Objekt C. Eine flache Kopie von X erstellt ein neues Objekt x2, das auch auf die Objekte A und B verweist. Im Gegensatz dazu erstellt eine tiefe Kopie von X ein neues-Objekt x2, das auf die neuen Objekte a2 und B2 verweist, die Kopien von a und B. B2 wiederum auf das neue Objekt C2, das eine Kopie c ist. verwenden Sie eine Klasse, die die ICloneable -Schnittstelle implementiert, um ein tiefes oder flaches C auszuführen. OPY eines Objekts.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.

Die Identität MarshalByRefObject eines-Objekts wird als das Remote Server Objekt definiert, das das Ziel eines remotingclientaufrufes ist.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Standardmäßig hat der mitgliedsweise Klon eines MarshalByRefObject -Objekts dieselbe Identität wie das ursprüngliche-Objekt, was in der Regel nicht das richtige Verhalten für Klone von serverseitigen Objekten ist, die über eine Remote Grenze an die Clientseite gemarshallt werden.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. Geben falseSie an, was in der Regel angemessen ist, um die Identität des geklonten zu löschen, und bewirkt, dass eine neue Identität zugewiesen wird, wenn der Klon über eine true Remote Grenze gemarshallt wird, oder dass der Klon die Identität des Originals beibehält.MarshalByRefObject -Objekt.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. Die MemberwiseClone(Boolean) -Methode ist für die Verwendung durch Entwickler vorgesehen, die Remote Server Objekte implementieren.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Gilt für: