표준 래퍼 사용자 지정
이 항목에서는 표준 런타임 호출 가능 래퍼와 COM 호출 가능 래퍼를 사용자 지정하는 프로세스를 설명합니다.
RCW
.NET 클라이언트가 COM 개체를 활성화하는 경우 런타임은 RCW의 인스턴스를 생성하여 COM 형식을 래핑합니다. 다음 그림과 같이 런타임은 가져온 COM 형식 라이브러리에서 얻은 메타데이터를 사용하여 RCW를 생성합니다. 래퍼는 interop 마샬링 서비스에서 설정한 규칙에 따라 데이터를 마샬링합니다.
RCW 생성 및 메서드 호출
RCW를 사용자 지정하는 데는 두 가지 방법이 있습니다. IDL(인터페이스 정의 언어) 소스를 수정할 수 있으면 TLB(형식 라이브러리) 파일 특성을 적용하고 형식 라이브러리를 가져올 수 있습니다. 또는 interop 특정 특성을 가져온 형식에 적용하고 새 어셈블리를 생성할 수 있습니다. 표준 RCW 사용자 지정에 대한 지원은 이 특성의 제한을 받습니다. 자세한 내용은 방법: 런타임 호출 가능 래퍼 사용자 지정을 참조하십시오.
CCW
CCW는 .NET Framework 개체를 COM에 노출합니다. 관리되는 프로젝트를 어셈블리 DLL로 컴파일하면 어셈블리에서 각 형식을 기술하는 데 필요한 메타데이터가 자동으로 만들어집니다. 런타임은 이 메타데이터를 사용하여 COM 클라이언트가 관리되는 개체를 활성화할 때마다 CCW를 생성합니다.
CCW를 사용자 지정하려면 다음 그림과 같이 interop 특정 특성을 관리되는 소스 코드에 적용하고 소스를 어셈블리로 컴파일합니다. 이 예제에서 Tlbexp.exe는 관리되는 형식을 COM으로 변환합니다.
CCW 생성 및 메서드 호출
특성을 코드에 적용하면 interop 마샬링 서비스의 범위 내에서 인터페이스와 데이터 마샬링 동작을 변경할 수 있습니다. 예를 들면 메서드에 인수로서 전달되는 데이터의 형식을 제어할 수 있습니다. 또한 어셈블리에서 COM에 노출되는 형식을 제어할 수도 있습니다.