Aracılığıyla paylaş


MarshalByRefObject.MemberwiseClone(Boolean) Yöntem

Tanım

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

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 nesnenin MarshalByRefObject kimliğini silmek için, nesne uzaktan erişim sınırı boyunca sıralandığında nesneye yeni bir kimlik atanmasına neden olur. değeri false genellikle uygundur. true geçerli nesnenin MarshalByRefObject kimliğini kopyasına kopyalamak için, uzaktan iletişim istemci çağrılarının uzak sunucu nesnesine yönlendirilmesine neden olur.

Döndürülenler

MarshalByRefObject

Geçerli MarshalByRefObject nesnenin sığ bir kopyası.

Açıklamalar

yöntemi, MemberwiseClone(Boolean) yeni bir nesne oluşturup geçerli MarshalByRefObject nesnenin statik olmayan alanlarını yeni MarshalByRefObject nesneye kopyalayarak sığ bir kopya oluşturur. Alan bir değer türüyse, alanın bit bit kopyası gerçekleştirilir. Bir alan bir başvuru türüyse, başvuru kopyalanır ancak başvuruda bulunılan nesne kopyalanmaz; Bu nedenle, özgün nesne ve kopyası aynı nesneye başvurur.

Örneğin, A ve B nesnelerine başvuran X adlı bir MarshalByRefObject nesne düşünün. B nesnesi de C nesnesine başvurur. X'in sığ bir kopyası, A ve B nesnelerine de başvuran yeni bir X2 nesnesi oluşturur. Buna karşılık, X'in derin bir kopyası, A ve B2'nin kopyaları olan yeni A2 ve B2 nesnelerine başvuran yeni bir X2 nesnesi oluşturur. B2, C kopyası olan yeni C2 nesnesine başvurur. Bir nesnenin derin veya sığ bir kopyasını gerçekleştirmek için arabirimi uygulayan ICloneable bir sınıf kullanın.

Bir MarshalByRefObject nesnenin kimliği, uzaktan iletişim istemci çağrısının hedefi olan uzak sunucu nesnesi olarak tanımlanır. Varsayılan olarak, bir MarshalByRefObject nesnenin üye düzeyindeki kopyası özgün nesneyle aynı kimliğe sahiptir ve bu genellikle istemci tarafında uzaktan iletişim sınırında sıralanmış sunucu tarafı nesnelerinin kopyaları için doğru davranış değildir. Kopyanın kimliğini silmek ve kopya uzaktan iletişim sınırında sıralandığında yeni bir kimliğin atanmasına neden olmak veya true kopyanın özgün MarshalByRefObject nesnenin kimliğini korumasına neden olmak için genellikle uygun olan değerini belirtinfalse. MemberwiseClone(Boolean) yöntemi, uzak sunucu nesneleri uygulayan geliştiriciler tarafından kullanılmak üzere tasarlanmıştır.

Şunlara uygulanır