MarshalByRefObject.MemberwiseClone(Boolean) Yöntem

Tanım

Geçerli nesnenin basit bir kopyasını oluşturur 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

Parametreler

cloneIdentity
Boolean

false geçerli MarshalByRefObject nesnenin kimliğini silmek için, bu, nesneye bir uzaktan iletişim sınırı boyunca sırada sıraya alındığı zaman yeni bir kimlik atanmasına neden olur.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. Bir değeri false genellikle uygundur.A value of false is usually appropriate. true Geçerli nesnenin kimliğini kopyasına kopyalamak için MarshalByRefObject , uzaktan iletişim istemci çağrılarının uzak sunucu nesnesine yönlendirilmesine neden olur.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.

Döndürülenler

MarshalByRefObject

Geçerli nesnenin basit bir kopyası MarshalByRefObject .A shallow copy of the current MarshalByRefObject object.

Açıklamalar

MemberwiseClone(Boolean)Yöntemi, yeni bir MarshalByRefObject nesne oluşturup sonra geçerli nesnenin statik olmayan alanlarını yeni nesneye kopyalayarak basit bir kopya oluşturur MarshalByRefObject .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. Bir alan değer türünde ise, alanın bir bit-bit kopyası gerçekleştirilir.If a field is a value type, a bit-by-bit copy of the field is performed. Bir alan bir başvuru türü ise, başvuru kopyalanır ancak başvurulan nesne değildir; Bu nedenle, özgün nesne ve onun kopyası aynı nesneye başvurur.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.

Örneğin, MarshalByRefObject a ve B nesnelerine başvuran X adlı bir nesne düşünün. nesne B, sırasıyla C nesnesine başvurur. X 'in basit bir kopyası, A ve B nesnelerine de başvuran yeni nesne x2 oluşturur. Buna karşılık, bir X öğesinin bir kopyası, A ve B 'ın kopyaları olan a2 ve B2 yeni nesnelerine başvuran yeni bir nesne oluşturur. B2, bir kopya C olan yeni bir C2 nesnesine başvurur. ICloneable bir nesnenin derin veya basit bir kopyasını gerçekleştirmek için arabirimi uygulayan bir sınıf kullanın.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.

Bir nesnenin kimliği, MarshalByRefObject Uzaktan iletişim istemci çağrısının hedefi olan uzak sunucu nesnesi olarak tanımlanır.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Varsayılan olarak, bir nesnenin üye tabanlı kopyası MarshalByRefObject özgün nesneyle aynı kimliğe sahiptir. Bu, tipik olarak, istemci tarafına bir uzaktan iletişim sınırının üzerinde sıralanan sunucu tarafı nesnelerinin klonları için doğru davranış değildir.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. falseKopyanın kimliğini silmek ve kopyanın bir uzaktan iletişim sınırında sıraya alındığı sırada veya true kopyanın özgün nesnenin kimliğini tutmasına neden olması için uygun olan, genellikle uygun olan öğesini belirtin 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. MemberwiseClone(Boolean)Yöntemi, uzak sunucu nesneleri uygulayan geliştiriciler tarafından kullanılmak üzere tasarlanmıştır.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Şunlara uygulanır