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 オブジェクトの ID が削除されます。これにより、このオブジェクトがリモート処理の境界を越えてマーシャリングされるときに、新しい ID が割り当てられることになります。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 オブジェクトの ID がその複製にコピーされます。これにより、リモート処理クライアントの呼び出しは、リモート サーバー オブジェクトにルーティングされることになります。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.

注釈

メソッドMemberwiseClone(Boolean)は、新しいMarshalByRefObjectオブジェクトを作成し、現在MarshalByRefObjectのオブジェクトの非静的フィールドを新しいオブジェクトにコピーすることによって、簡易コピーを作成します。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.

たとえば、オブジェクト a とMarshalByRefObject b を参照する X と呼ばれるオブジェクトについて考えてみます。オブジェクト b がオブジェクト C を参照しているとします。X の簡易コピーでは、オブジェクト A と B も参照する新しいオブジェクト X2 が作成されます。これに対し、X の詳細コピーでは新しいオブジェクト X2 が作成されます。これは、a と B のコピーである新しいオブジェクトを参照します。 b2 は、コピー C である新しいオブジェクト C2 を参照します。 deep またICloneableは浅い c を実行するインターフェイスを実装するクラスを使用します。オブジェクトの配列。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オブジェクトの id は、リモート処理クライアント呼び出しの対象となるリモートサーバーオブジェクトとして定義されます。The identity of a MarshalByRefObject object is defined as the remote server object that is the target of a remoting client call. 既定では、 MarshalByRefObjectオブジェクトのメンバーごとの複製には元のオブジェクトと同じ id が使用されます。これは通常、リモート処理の境界を越えてクライアント側にマーシャリングされるサーバー側オブジェクトの複製に対しては正しい動作ではありません。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は、複製の id を削除し、リモート処理の境界を越えて複製がマーシャリングされるときに新しい id が割り当てられるように指定trueします。または、複製によって元のidを保持します。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.

適用対象