MarshalByRefObject.MemberwiseClone(Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.
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 odstranění identity aktuálního MarshalByRefObject objektu, což způsobí, že objekt bude přiřazena nová identita při zařazování přes hranice vzdálené komunikace. Hodnota false je obvykle vhodná.
true zkopírování identity aktuálního MarshalByRefObject objektu do jeho klonu, což způsobí směrování vzdálených volání klienta do objektu vzdáleného serveru.
Návraty
Mělká kopie aktuálního MarshalByRefObject objektu.
Poznámky
Metoda MemberwiseClone(Boolean) vytvoří mělké kopie 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. Pokud je pole typ hodnoty, provede se bitová kopie pole. Pokud je polem typ odkazu, odkaz se zkopíruje, ale odkazovaný objekt není; proto původní objekt a jeho klon odkazují na stejný objekt.
Představte si MarshalByRefObject například objekt X, který odkazuje na objekty A a B. Objekt B zase odkazuje na objekt C. Mělká kopie X vytvoří nový objekt X2, který odkazuje také na objekty A a B. Naproti tomu hloubková kopie X vytvoří nový objekt X2, který odkazuje na nové objekty A2 a B2, což jsou kopie A a B. B2 zase odkazuje na nový objekt C2, což je kopie C. Použijte třídu, která implementuje ICloneable rozhraní k provedení hluboké nebo mělké kopie objektu.
Identita objektu MarshalByRefObject je definována jako objekt vzdáleného serveru, který je cílem vzdáleného volání klienta vzdálené komunikace. Ve výchozím nastavení má členský klon MarshalByRefObject objektu stejnou identitu jako původní objekt, což obvykle není správné chování pro klony objektů na straně serveru, které jsou zařazovány přes vzdálenou hranici na straně klienta. Zadejte false, což je obvykle vhodné, odstranit identitu klonu a způsobit přiřazení nové identity při zařazování klonu přes hranice vzdálené komunikace nebo true způsobit klon zachování identity původního MarshalByRefObject objektu. Metoda MemberwiseClone(Boolean) je určená pro vývojáře, kteří implementují objekty vzdáleného serveru.