Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

MarshalByRefObject.MemberwiseClone-Methode (Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

protected MarshalByRefObject MemberwiseClone (
	bool cloneIdentity
)
protected MarshalByRefObject MemberwiseClone (
	boolean cloneIdentity
)
protected function MemberwiseClone (
	cloneIdentity : boolean
) : MarshalByRefObject
Nicht zutreffend.

Parameter

cloneIdentity

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 normalerweise üblich. true wird verwendet, um die Identität des aktuellen MarshalByRefObject-Objekts auf dessen Klon zu kopieren. Das führt dazu, dass Remoteclient-Aufrufe an das Remoteserverobjekt weitergeleitet werden.

Rückgabewert

Eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

Die MemberwiseClone-Methode erstellt eine flache Kopie, indem ein neues MarshalByRefObject-Objekt erstellt wird und anschließend die nicht statischen Felder des aktuellen MarshalByRefObject-Objekts in das neue Objekt kopiert werden. Wenn ein Feld ein Werttyp ist, wird das Feld bitweise kopiert. Wenn es sich bei dem Feld um einen Verweistyp handelt, wird nicht das Objekt, auf das verwiesen wird, sondern der Verweis kopiert. Daher verweisen das ursprüngliche Objekt und der Klon auf dasselbe Objekt.

Als Beispiel soll ein MarshalByRefObject-Objekt X dienen, das auf die Objekte A und B verweist. Objekt B wiederum verweist auf ein Objekt C. Eine flache Kopie von X erstellt das neue Objekt X2, das ebenfalls auf die Objekte A und B verweist. Eine tiefe Kopie von X erstellt ein neues Objekt X2, das auf die neuen Objekte A2 und B2 verweist, die Kopien von A und B sind. B2 wiederum verweist auf das neue Objekt C2, das eine Kopie von C ist. Verwenden Sie eine Klasse, die die ICloneable-Schnittstelle implementiert, um eine tiefe oder flache Kopie eines Objekts zu erstellen.

Die Identität eines MarshalByRefObject-Objekts ist als Remoteserverobjekt definiert, das Ziel eines Remoteclient-Aufrufs ist. Standardmäßig hat der memberweise Klon eines MarshalByRefObject-Objekts die gleiche Identität wie das ursprüngliche Objekt. Dies entspricht üblicherweise nicht dem richtigen Verhalten für Klone von serverseitigen Objekten, die über eine Remotegrenze auf die Clientseite gemarshallt werden. Geben Sie false an (dies ist i. d. R. korrekt), um die Identität des Klons zu löschen und eine neue Identität zuzuweisen, wenn der Klon über eine Remotegrenze gemarshallt wird. Geben Sie andernfalls true an, damit der Klon die Identität des ursprünglichen MarshalByRefObject-Objekts beibehält. Die MarshalByRefObject.MemberwiseClone-Methode ist für Entwickler vorgesehen, die Remoteserverobjekte implementieren.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen: