MarshalByRefObject.MemberwiseClone(Boolean) Metoda

Definicja

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

false usunąć bieżącej tożsamości obiektu MarshalByRefObject, 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. true skopiować bieżącej tożsamości obiektu MarshalByRefObject do jego klonowania, co spowoduje kierowanie wywołań 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 obiektu MarshalByRefObject.A shallow copy of the current MarshalByRefObject object.

Uwagi

Metoda MemberwiseClone(Boolean) tworzy skróconą kopię, tworząc nowy obiekt MarshalByRefObject, a następnie kopiując Niestatyczne pola bieżącego obiektu MarshalByRefObject do nowego obiektu.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 obiekt MarshalByRefObject 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 interfejs ICloneable, aby wykonać głębokie lub skróconą kopię obiektu.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ść obiektu MarshalByRefObject jest definiowana jako obiekt serwera zdalnego, który jest elementem docelowym wywołania klienta usług zdalnych.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 składowych obiektu MarshalByRefObject 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 w granicach 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 zwykle jest właściwy, aby usunąć tożsamość klonu i spowodować przypisanie nowej tożsamości, gdy klon jest zorganizowany przez granicę zdalną, lub true, aby spowodować, że klon zachowuje tożsamość oryginalnego obiektu MarshalByRefObject.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. Metoda MemberwiseClone(Boolean) ma być używana przez deweloperów implementujących obiekty serwera zdalnego.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Dotyczy