Поделиться через


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. Объект B, в свою очередь, ссылается на объект C. Неглубокая копия X создает новый объект X2, который также ссылается на объекты A и B. В отличие от этого, глубокая копия X создает новый объект X2, который ссылается на новые объекты A2 и B2, которые являются копиями A и B. B2, в свою очередь, ссылается на новый объект C2, который является копией C. Используйте класс, реализующий ICloneable интерфейс , для выполнения глубокой или поверхностной копии объекта.

Удостоверение MarshalByRefObject объекта определяется как объект удаленного сервера, который является целевым объектом вызова удаленного клиента. По умолчанию клон MarshalByRefObject объекта имеет то же удостоверение, что и исходный объект, что обычно не является правильным поведением для клонов объектов на стороне сервера, маршалированных через границу удаленного взаимодействия на стороне клиента. Укажите false, что обычно подходит, чтобы удалить удостоверение клона и назначить новое удостоверение при маршалинге клона через границу удаленного взаимодействия или true чтобы клон сохранил удостоверение исходного MarshalByRefObject объекта. Метод MemberwiseClone(Boolean) предназначен для использования разработчиками, реализующим объекты удаленного сервера.

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