다음을 통해 공유


MarshalByRefObject.MemberwiseClone(Boolean) 메서드

정의

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

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 값이 적합합니다. true이면 현재 MarshalByRefObject 개체의 ID를 복제본으로 복사하여 원격 클라이언트 호출이 원격 서버 개체로 라우팅됩니다.

반환

MarshalByRefObject

MarshalByRefObject 개체의 단순 복사본입니다.

설명

메서드는 MemberwiseClone(Boolean)MarshalByRefObject 개체를 만든 다음 현재 MarshalByRefObject 개체의 비정적 필드를 새 개체에 복사하여 단순 복사본을 만듭니다. 필드가 값 형식인 경우 필드의 비트 단위 복사본이 수행됩니다. 필드가 참조 형식인 경우 참조가 복사되지만 참조된 개체는 복사되지 않습니다. 따라서 원래 개체와 해당 복제본은 동일한 개체를 참조합니다.

예를 들어 개체 A MarshalByRefObject 및 B를 참조하는 X라는 개체를 고려합니다. 개체 B는 개체 C를 참조합니다. X의 단순 복사본은 개체 A 및 B도 참조하는 새 개체 X2를 만듭니다. 반대로 X의 딥 복사본은 A와 B2의 복사본인 새 개체 A2 및 B2를 참조하는 새 개체 X2를 만들고, C 복사본인 새 개체 C2를 참조합니다. 인터페이스를 구현하는 ICloneable 클래스를 사용하여 개체의 깊거나 단순한 복사본을 수행합니다.

개체의 MarshalByRefObject ID는 원격 클라이언트 호출의 대상인 원격 서버 개체로 정의됩니다. 기본적으로 개체의 MarshalByRefObject 멤버 복제는 원래 개체와 동일한 ID를 가지며, 이는 일반적으로 원격 경계를 넘어 클라이언트 쪽으로 마샬링되는 서버 쪽 개체의 클론에 대한 올바른 동작이 아닙니다. 복제의 ID를 삭제하고 복제가 원격 경계 true 를 가로질러 마샬링될 때 새 ID가 할당되도록 하거나 복제본이 원래 MarshalByRefObject 개체의 ID를 유지하도록 하려면 일반적으로 적절한 항목을 지정false합니다. 이 MemberwiseClone(Boolean) 메서드는 개발자가 원격 서버 개체를 구현하는 데 사용됩니다.

적용 대상