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

Неполная копия текущего объекта 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) метод предназначен для использования разработчиками, реализующим удаленные объекты сервера.

Применяется к