MarshalByRefObject.MemberwiseClone(Boolean) Método

Definição

Cria uma cópia superficial do objeto MarshalByRefObject atual.

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

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. Um valor de false geralmente é adequado. 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.

Retornos

MarshalByRefObject

Uma cópia superficial do objeto MarshalByRefObject atual.

Comentários

O MemberwiseClone(Boolean) método cria uma cópia superficial criando um novo MarshalByRefObject objeto e copiando os campos não estáticos do objeto atual MarshalByRefObject para o novo objeto. Se um campo for um tipo de valor, uma cópia bit a bit do campo será executada. Se um campo for um tipo de referência, a referência será copiada, mas o objeto referenciado não será; portanto, o objeto original e seu clone referem-se ao mesmo objeto.

Por exemplo, considere um MarshalByRefObject objeto chamado X que faz referência aos 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 aos 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 classe que implementa a ICloneable interface para executar uma cópia profunda ou superficial de um objeto.

A identidade de um MarshalByRefObject objeto é definida como o objeto de servidor remoto que é o destino de uma chamada de cliente remota. Por padrão, o clone de membro 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 marshalados em um limite de comunicação remota para o lado do cliente. Especifique false, o que geralmente é apropriado, para excluir a identidade do clone e fazer com que uma nova identidade seja atribuída quando o clone é marshalado em um limite de comunicação remota ou true para fazer com que o clone mantenha a identidade do objeto original MarshalByRefObject . O MemberwiseClone(Boolean) método destina-se a ser usado por desenvolvedores que implementam objetos de servidor remoto.

Aplica-se a