MarshalByRefObject.MemberwiseClone(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una copia superficial del objeto MarshalByRefObject actual.
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 eliminar la identidad actual del objeto MarshalByRefObject, que provocará la asignación de una nueva identidad al objeto cuando se calculan sus referencias a través de un límite de comunicación remota. El valor false
suele ser el adecuado. Es true
para copiar la identidad actual del objeto MarshalByRefObject en su copia, que hará que las llamadas del cliente de comunicación remota se enruten al objeto del servidor remoto.
Devoluciones
Copia superficial del objeto MarshalByRefObject actual.
Comentarios
El MemberwiseClone(Boolean) método crea una copia superficial mediante la creación de un nuevo MarshalByRefObject objeto y, a continuación, copia los campos no estáticos del objeto actual MarshalByRefObject en el nuevo objeto. Si un campo es un tipo de valor, se realiza una copia bit a bit del campo. Si un campo es un tipo de referencia, la referencia se copia, pero el objeto al que se hace referencia no es; por lo tanto, el objeto original y su clon hacen referencia al mismo objeto.
Por ejemplo, considere un MarshalByRefObject objeto denominado X que hace referencia a los objetos A y B. Objeto B, a su vez, hace referencia al objeto C. Una copia superficial de X crea un nuevo objeto X2 que también hace referencia a los objetos A y B. En cambio, una copia en profundidad de X crea un nuevo objeto X2 que hace referencia a los nuevos objetos A2 y B2, que son copias de A y B. B2, a su vez, hace referencia al nuevo objeto C2, que es una copia C. Use una clase que implemente la ICloneable interfaz para realizar una copia profunda o superficial de un objeto.
La identidad de un MarshalByRefObject objeto se define como el objeto de servidor remoto que es el destino de una llamada de cliente de comunicación remota. De forma predeterminada, el clon miembro de un MarshalByRefObject objeto tiene la misma identidad que el objeto original, que normalmente no es el comportamiento correcto para los clones de objetos del lado servidor que se serializarán a través de un límite de comunicación remota al lado cliente. Especifique false
, que suele ser adecuado, para eliminar la identidad del clon y hacer que se asigne una nueva identidad cuando el clon se serializa a través de un límite de comunicación remota o true
haga que el clon conserve la identidad del objeto original MarshalByRefObject . El MemberwiseClone(Boolean) método está pensado para que lo usen los desarrolladores que implementan objetos de servidor remoto.