MarshalByRefObject.MemberwiseClone(Boolean) Metoda

Definicja

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.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

falseAby usunąć tożsamość bieżącego MarshalByRefObject obiektu, co spowoduje, że obiekt ma mieć przypisaną nową tożsamość, gdy zostanie on zorganizowany przez granicę komunikacji zdalnej.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. Wartość false jest zwykle odpowiednia.A value of false is usually appropriate. trueAby skopiować tożsamość bieżącego MarshalByRefObject obiektu do jego klonu, co spowoduje kierowanie wywołań klienta komunikacji zdalnej do obiektu serwera zdalnego.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.

Zwraca

Skrócona kopia bieżącego MarshalByRefObject obiektu.A shallow copy of the current MarshalByRefObject object.

Uwagi

Metoda tworzy skróconą kopię, tworząc nowy MarshalByRefObject obiekt, a następnie kopiując pola niestatyczne bieżącego MarshalByRefObject obiektu do nowego obiektu. MemberwiseClone(Boolean)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. Jeśli pole jest typu wartości, zostanie przeprowadzona bitowa kopia przez bit pola.If a field is a value type, a bit-by-bit copy of the field is performed. Jeśli pole jest typem referencyjnym, odwołanie jest kopiowane, ale określony obiekt nie jest; w związku z tym oryginalny obiekt i jego klon odwołują się do tego samego obiektu.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.

Rozważmy na przykład MarshalByRefObject obiekt o nazwie X, który odwołuje się do obiektów a i B. obiekt B, z kolei, odwołuje się do obiektu C. Kopia płytki X tworzy nowy obiekt X2, który odwołuje się również do obiektów A i B. Z kolei Szczegółowa kopia X tworzy nowy obiekt X2, który odwołuje się do nowych obiektów a2 i B2, które są kopiami a i B. B2, z kolei odwołuje się do nowego obiektu C2, który jest kopią c. Użyj klasy implementującej ICloneable interfejs, aby wykonać głębokie lub płytki c Kopiuj obiekt.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.

Tożsamość MarshalByRefObject obiektu jest definiowana jako obiekt serwera zdalnego, który jest elementem docelowym wywołania klienta komunikacji zdalnej.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Domyślnie klon MarshalByRefObject składowych obiektu ma taką samą tożsamość jak oryginalny obiekt, który zwykle nie jest poprawnym zachowaniem klonowania obiektów po stronie serwera, które są organizowane na granicy komunikacji zdalnej po stronie 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. Określ false, który jest zwykle właściwy, aby usunąć tożsamość klonu i spowodować przypisanie nowej tożsamości, gdy klon jest zorganizowany przez granicę komunikacji zdalnej, lub true aby spowodować, że klon zachowuje tożsamość oryginalnego MarshalByRefObject obiekt.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. MemberwiseClone(Boolean) Metoda jest przeznaczona do użycia przez deweloperów implementujących obiekty serwera zdalnego.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Dotyczy