MarshalByRefObject.MemberwiseClone(Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.
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. Der Wert false ist in der Regel geeignet. 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.
Gibt zurück
Eine flache Kopie des aktuellen MarshalByRefObject-Objekts.
Hinweise
Die MemberwiseClone(Boolean) -Methode erstellt eine flache Kopie, indem sie ein neues -Objekt erstellt MarshalByRefObject und dann die nicht statischen Felder des aktuellen MarshalByRefObject -Objekts in das neue -Objekt kopiert. Wenn ein Feld ein Werttyp ist, wird eine Bit-by-Bit-Kopie des Felds ausgeführt. Wenn ein Feld ein Verweistyp ist, wird der Verweis kopiert, aber das objekt, auf das verwiesen wird, nicht. daher verweisen das ursprüngliche Objekt und sein Klon auf das gleiche Objekt.
Betrachten Sie beispielsweise ein MarshalByRefObject Objekt mit dem Namen X, das auf die Objekte A und B verweist. Objekt B verweist wiederum auf Objekt C. Eine flache Kopie von X erstellt das neue 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. Dabei handelt es sich um Kopien von A und B2. B2 verweist wiederum auf das neue Objekt C2, bei dem es sich um eine Kopie C handelt. Verwenden Sie eine Klasse, die die -Schnittstelle implementiert, ICloneable um eine tiefe oder flache Kopie eines Objekts auszuführen.
Die Identität eines MarshalByRefObject -Objekts wird als Remoteserverobjekt definiert, das das Ziel eines Remotingclientaufrufs ist. Standardmäßig verfügt der memberweise Klon eines -Objekts über MarshalByRefObject die gleiche Identität wie das ursprüngliche Objekt. Dies ist in der Regel nicht das richtige Verhalten für Klone serverseitiger Objekte, die über eine Remotinggrenze zur Clientseite gemarshallt werden. Geben Sie false an, was normalerweise geeignet ist, um die Identität des Klons zu löschen und eine neue Identität zuzuweisen, wenn der Klon über eine Remotinggrenze gemarshallt wird, oder true um zu veranlassen, dass der Klon die Identität des ursprünglichen Objekts beibehält. MarshalByRefObject Die MemberwiseClone(Boolean) -Methode soll von Entwicklern verwendet werden, die Remoteserverobjekte implementieren.