MarshalByRefObject.MemberwiseClone(Boolean) MarshalByRefObject.MemberwiseClone(Boolean) MarshalByRefObject.MemberwiseClone(Boolean) MarshalByRefObject.MemberwiseClone(Boolean) Method

Определение

Создает неполную копию текущего объекта.Creates a shallow copy of the current object.

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

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 Boolean Boolean Boolean

Значение false, чтобы удалить удостоверение текущего объекта MarshalByRefObject, в результате чего при маршалинге объектов через удаленные границы будет присвоено новое удостоверение.false to delete the current MarshalByRefObject object's identity, which will cause the object to be assigned a new identity when it is marshaled across a remoting boundary. В большинстве случаев можно использовать значение false.A value of false is usually appropriate. Значение true для копирования удостоверения текущего объекта MarshalByRefObject в его клон, в результате чего вызовы удаленного клиента будут перенаправляться на объект удаленного сервера.true to copy the current MarshalByRefObject object's identity to its clone, which will cause remoting client calls to be routed to the remote server object.

Возвраты

Неполная копия текущего объекта MarshalByRefObject.A shallow copy of the current MarshalByRefObject object.

Комментарии

Метод создает неполную копию путем создания нового MarshalByRefObject объекта, а затем копирует нестатические поля текущего MarshalByRefObject объекта в новый объект. MemberwiseClone(Boolean)The MemberwiseClone(Boolean) method creates a shallow copy by creating a new MarshalByRefObject object, and then copying the nonstatic fields of the current MarshalByRefObject object to the new object. Если поле является типом значения, выполняется побитовая копия поля.If a field is a value type, a bit-by-bit copy of the field is performed. Если поле является ссылочным типом, то ссылка копируется, но на объект, на который указывает ссылка, нет; Таким образом, исходный объект и его клон ссылаются на один и тот же объект.If a field is a reference type, the reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object.

Например, рассмотрим MarshalByRefObject объект с именем X, который ссылается на объекты a и b. объект B, в свою очередь, ссылается на объект C. Поверхностная копия X создает новый объект x2, который также ссылается на объекты A и B. В отличие от этого, при глубоком копировании X создается новый объект x2, который ссылается на новые объекты a2 и B2, которые являются копиями a и B. B2, в свою очередь, ссылается на новый объект C2, который является копией c. Используйте класс ICloneable , реализующий интерфейс для выполнения глубокой или полной версии c OPY объекта.For example, consider a MarshalByRefObject object called X that references objects A and B. Object B, in turn, references object C. A shallow copy of X creates new object X2 that also references objects A and B. In contrast, a deep copy of X creates a new object X2 that references the new objects A2 and B2, which are copies of A and B. B2, in turn, references the new object C2, which is a copy C. Use a class that implements the ICloneable interface to perform a deep or shallow copy of an object.

Удостоверение MarshalByRefObject объекта определяется как удаленный серверный объект, являющийся целевым объектом удаленного вызова клиента.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. По умолчанию клон MarshalByRefObject почленном объекта имеет то же удостоверение, что и исходный объект, что обычно не является правильным поведением для клонов серверных объектов, которые маршалируются через границу удаленного взаимодействия на сторону клиента.By default, the memberwise clone of a MarshalByRefObject object has the same identity as the original object, which is typically not the correct behavior for clones of server-side objects that are marshaled across a remoting boundary to the client side. Чтобы falseудалить удостоверение клона и создать новое удостоверение, которое будет назначено при маршалинге клона через границу удаленного взаимодействия, или сделать так true , чтобы клон сохранил идентификатор исходного объекта,следуетуказать,чтообычноподходит.MarshalByRefObject объект.Specify false, which is usually appropriate, to delete the identity of the clone and cause a new identity to be assigned when the clone is marshaled across a remoting boundary, or true to cause the clone to retain the identity of the original MarshalByRefObject object. MemberwiseClone(Boolean) Метод предназначен для использования разработчиками, реализующими объекты удаленных серверов.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

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