MarshalByRefObject.MemberwiseClone(Boolean) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает неполную копию текущего объекта MarshalByRefObject.
protected:
MarshalByRefObject ^ MemberwiseClone(bool cloneIdentity);
protected MarshalByRefObject MemberwiseClone (bool cloneIdentity);
override this.MemberwiseClone : bool -> MarshalByRefObject
Protected Function MemberwiseClone (cloneIdentity As Boolean) As MarshalByRefObject
Параметры
- cloneIdentity
- Boolean
Значение false
, чтобы удалить удостоверение текущего объекта MarshalByRefObject, в результате чего при маршалинге объектов через удаленные границы будет присвоено новое удостоверение. В большинстве случаев можно использовать значение false
. Значение true
для копирования удостоверения текущего объекта MarshalByRefObject в его клон, в результате чего вызовы удаленного клиента будут перенаправляться на объект удаленного сервера.
Возвращаемое значение
Неполная копия текущего объекта MarshalByRefObject.
Комментарии
Метод MemberwiseClone(Boolean) создает неглубокую копию, создавая новый MarshalByRefObject объект, а затем копируя нестатические поля текущего MarshalByRefObject объекта в новый объект. Если поле является типом значения, выполняется битовая копия поля. Если поле является ссылочным типом, ссылка копируется, но указанный объект не является; таким образом, исходный объект и его клон ссылаются на тот же объект.
Например, рассмотрим MarshalByRefObject объект с именем X, который ссылается на объекты A и B. Object B, в свою очередь, ссылается на объект C. Неглубокая копия X создает новый объект X2, который также ссылается на объекты A и B. В отличие от этого, глубокая копия X создает новый объект X2, который ссылается на новые объекты A2 и B2, которые являются копиями A и B2, в свою очередь, ссылается на новый объект C2, который является копией C2. Используйте класс, реализующий ICloneable интерфейс для выполнения глубокой или мелкой копии объекта.
Удостоверение MarshalByRefObject объекта определяется как удаленный серверный объект, который является целевым объектом вызова клиента удаленного взаимодействия. По умолчанию клон MarshalByRefObject по члену объекта имеет то же удостоверение, что и исходный объект, который обычно не является правильным поведением для клонов объектов на стороне сервера, маршалированных через границу удаленного взаимодействия на стороне клиента. Укажите false
, что обычно уместно, чтобы удалить удостоверение клона и назначить новое удостоверение при маршалировании клона через границу удаленного взаимодействия или true
вызвать сохранение удостоверения исходного MarshalByRefObject объекта. Этот MemberwiseClone(Boolean) метод предназначен для использования разработчиками, реализующим удаленные объекты сервера.