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

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