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

Definição

Cria uma cópia superficial do objeto atual.Creates a shallow copy of the current object.

Cria uma cópia superficial do objeto MarshalByRefObject atual.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

Parâmetros

cloneIdentity
Boolean Boolean Boolean Boolean

false para excluir a identidade do objeto MarshalByRefObject atual, o que fará com que o objeto seja atribuído a uma nova identidade quando ele passa por marshaling em um limite de comunicação remota.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. Um valor de false geralmente é adequado.A value of false is usually appropriate. true para copiar a identidade do objeto MarshalByRefObject atual para o clone, o que fará com que as chamadas de cliente de comunicação remota sejam roteados para o objeto do servidor remoto.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.

Retornos

Uma cópia superficial do objeto MarshalByRefObject atual.A shallow copy of the current MarshalByRefObject object.

Comentários

O MemberwiseClone(Boolean) método cria uma cópia superficial criando um novo MarshalByRefObject objeto e, em seguida, copiando os campos não estáticos MarshalByRefObject do objeto atual para o novo objeto.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. Se um campo for um tipo de valor, uma cópia bit a bit do campo será executada.If a field is a value type, a bit-by-bit copy of the field is performed. Se um campo for um tipo de referência, a referência será copiada, mas o objeto referido não será; Portanto, o objeto original e seu clone fazem referência ao mesmo objeto.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.

Por exemplo, considere um MarshalByRefObject objeto chamado X que faz referência a objetos a e B. o objeto b, por sua vez, faz referência ao objeto C. Uma cópia superficial de X cria um novo objeto X2 que também faz referência A objetos A e B. Por outro lado, uma cópia profunda de X cria um novo objeto X2 que faz referência aos novos objetos a2 e B2, que são cópias de a e B. B2, por sua vez, faz referência ao novo objeto C2, que é uma cópia C. Use uma ICloneable classe que implemente a interface para executar um c profundo ou superficial opiar de um objeto.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.

A identidade de um MarshalByRefObject objeto é definida como o objeto de servidor remoto que é o destino de uma chamada de cliente de comunicação remota.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Por padrão, o clone memberwise de um MarshalByRefObject objeto tem a mesma identidade que o objeto original, que normalmente não é o comportamento correto para clones de objetos do lado do servidor que são empacotados em um limite de comunicação remota para o lado do cliente.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. Especifique false, que é geralmente apropriado, para excluir a identidade do clone e fazer com que uma nova identidade seja atribuída quando o clone for empacotado em um limite de comunicação remota true ou para fazer com que o clone retenha a identidade do original MarshalByRefObject objeto.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. O MemberwiseClone(Boolean) método destina-se a ser usado por desenvolvedores que implementam objetos de servidor remoto.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Aplica-se a