사용자 지정 마샬링

마샬러는 기본적으로 이전 인터페이스와 새 인터페이스의 기능 간에 중개 역할을 합니다. 사용자 지정 마샬링을 사용하면 이전 인터페이스를 사용하도록 되어 있는 클라이언트가 새 인터페이스만 구현하는 서버에서도 동작할 수 있습니다. 또한 새 인터페이스를 사용하도록 빌드된 클라이언트가 이전 인터페이스를 노출하는 서버에서도 동작할 수 있습니다.

interop 마샬러를 사용하는 대신 인터페이스에 대해 다양한 마샬링 동작을 도입하거나 다양한 방법으로 인터페이스를 COM(구성 요소 개체 모델)에 노출하는 사용자 지정 마샬러를 디자인할 수 있습니다. 사용자 지정 마샬러를 사용하면 새 .NET Framework 구성 요소와 기존 COM 구성 요소 간의 차이를 최소화할 수 있습니다.

예를 들어, 이름이 INew인 관리되는 인터페이스를 개발하는 경우를 가정해 봅니다. 이 인터페이스는 표준 COM 호출 가능 래퍼를 통해 COM에 노출될 경우 관리되는 인터페이스와 동일한 메서드를 포함하고 interop 마샬러에 내장된 마샬링 규칙을 사용합니다. 이제 IOld라는 잘 알려진 COM 인터페이스에서 이미 INew 인터페이스와 동일한 기능을 제공하는 경우를 가정해 봅니다. 사용자 지정 마샬러를 도입하면 관리되는 INew 인터페이스 구현에 호출을 위임하는 관리되지 않는 IOld 구현을 제공할 수 있습니다. 사용자 지정 마샬러는 기본적으로 관리되는 인터페이스와 관리되지 않는 인터페이스 사이의 중개 역할을 합니다.

사용자 지정 마샬러는 디스패치 전용 인터페이스에서 관리되는 쪽으로부터 관리되지 않는 쪽으로 호출할 때는 호출되지 않습니다.

관련 항목

제목

설명

마샬링 형식 정의

사용자 지정 마샬러의 설정과 관련된 인터페이스를 준비하는 방법에 대해 설명합니다.

ICustomMarshaler 인터페이스 구현

사용자 지정 마샬러를 준비할 때 사용하는 옵션에 대해 설명합니다.

대체 마샬러 사용

MarshalAsAttribute 특성을 사용하여 사용자 지정 마샬러를 삽입하는 방법에 대해 설명합니다.

Interop 마샬링

COM interop와 플랫폼 호출에 대한 마샬링에 대해 설명합니다.

참조

System.Runtime.InteropServices.ICustomMarshaler

System.Runtime.InteropServices.MarshalAsAttribute