MarshalByRefObject.MemberwiseClone(Boolean) メソッド

定義

現在の 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

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

現在の 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.

たとえば、オブジェクト MarshalByRefObject a と b を参照する X と呼ばれるオブジェクトについて考えてみます。オブジェクト b がオブジェクト C を参照しているとします。X の簡易コピーでは、オブジェクト A と B も参照する新しいオブジェクト X2 が作成されます。これに対し、X の詳細コピーでは新しいオブジェクト X2 が作成されます。これは、A と B のコピーである A2 と B2 の新しいオブジェクトを参照します。 B2 は、新しいオブジェクト C2 (コピー C) を参照します。インターフェイスを実装するクラスを使用して、 ICloneable オブジェクトのディープまたは浅いコピーを実行します。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.

オブジェクトの id は、 MarshalByRefObject リモート処理クライアント呼び出しの対象となるリモートサーバーオブジェクトとして定義されます。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 マーシャリングする場合、または複製が true 元のオブジェクトの id を保持する場合に、複製の id を削除し、新しい id が割り当てられるようにするには、を指定します MarshalByRefObjectSpecify 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.

適用対象