MarshalByRefObject.MemberwiseClone(Boolean) Metodo

Definizione

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.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

Parametri

cloneIdentity
Boolean

false per eliminare l'identità dell'oggetto MarshalByRefObject corrente, che provoca l'assegnazione di una nuova identità all'oggetto se sottoposto a marshaling oltre un limite remoto.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. Il valore false in genere è appropriato.A value of false is usually appropriate. true per eseguire la copia dell'identità dell'oggetto MarshalByRefObject nel rispettivo duplicato, che provoca l'indirizzamento al server dell'oggetto remoto delle chiamate provenienti dal client 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.

Restituisce

Copia dei riferimenti dell'oggetto MarshalByRefObject corrente.A shallow copy of the current MarshalByRefObject object.

Commenti

Il metodo MemberwiseClone(Boolean) crea una copia superficiale creando un nuovo oggetto MarshalByRefObject e quindi copiando i campi non statici dell'oggetto MarshalByRefObject corrente nel nuovo oggetto.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 un campo è un tipo di valore, viene eseguita una copia bit per bit del campo.If a field is a value type, a bit-by-bit copy of the field is performed. Se un campo è un tipo di riferimento, il riferimento viene copiato ma l'oggetto di riferimento non lo è. Pertanto, l'oggetto originale e il relativo clone fanno riferimento allo stesso oggetto.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.

Si consideri, ad esempio, un oggetto MarshalByRefObject denominato X che fa riferimento agli oggetti A e B. l'oggetto B, a sua volta, fa riferimento all'oggetto C. Una copia superficiale di X crea un nuovo oggetto X2 che fa riferimento anche agli oggetti A e B. Al contrario, una copia completa di X crea un nuovo oggetto X2 che fa riferimento ai nuovi oggetti a2 e B2, che sono copie di A e B. B2, a sua volta, fa riferimento al nuovo oggetto C2, che è una copia C. utilizzare una classe che implementi l'interfaccia ICloneable per eseguire una copia approfondita o superficiale di un oggetto.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.

L'identità di un oggetto MarshalByRefObject è definita come l'oggetto server remoto che è la destinazione di una chiamata client remota.The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. Per impostazione predefinita, il clone membro per membro di un oggetto MarshalByRefObject ha la stessa identità dell'oggetto originale, che in genere non è il comportamento corretto per i cloni di oggetti lato server sottoposti a marshalling attraverso un limite di comunicazione remota al lato client.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. Specificare false, che in genere è appropriato, per eliminare l'identità del clone e causare l'assegnazione di una nuova identità quando viene effettuato il marshalling del clone attraverso un limite remoto oppure true per fare in modo che il clone mantenga l'identità dell'oggetto MarshalByRefObject originale.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. Il metodo MemberwiseClone(Boolean) è destinato a essere utilizzato dagli sviluppatori che implementano oggetti server remoti.The MemberwiseClone(Boolean) method is intended to be used by developers implementing remote server objects.

Si applica a