Share via


런타임 호출 가능 래퍼 사용자 지정

공용 언어 런타임에서는 interop 어셈블리의 메타데이터에서 RCW를 생성합니다. 다른 어셈블리와 달리 interop 어셈블리는 형식 라이브러리를 가져옴으로써 생성됩니다. 가져오기 프로세스에서는 일반적으로 올바른 interop 어셈블리를 생성하지만, 사용자가 interop 어셈블리를 수정하여 사용자 지정 RCW를 만들 수 있으며 그래야 하는 경우도 있습니다.

RCW를 사용자 지정하는 데는 다음과 같은 몇 가지 이유가 있습니다.

  • 하나 이상의 형식에서 추가 마샬링 정보를 필요로 합니다.

  • 형식 라이브러리에 마샬러에서 인식할 수 없는 특수 형식이 많이 포함되어 있습니다.

  • 큰 형식 라이브러리에는 응용 프로그램에 필요하지 않은 형식이 포함될 수 있습니다. 관리되는 소스 코드에서 interop 어셈블리를 만들면 불필요한 형식을 배포하지 않아도 됩니다.

  • RCW 소스 코드에서 큰 형식 라이브러리에 있는 형식의 일부를 포함하도록 하면 불필요한 형식을 배포하지 않아도 됩니다.

다음 그림에서 보여 주는 것과 같이, 래퍼를 사용자 지정하지 않고도 형식 라이브러리를 관리되는 DLL로 가져올 수 있습니다(그림의 왼쪽에 표시). 또는 사용자 지정 래퍼를 만들 수 있습니다.

가져온 형식 라이브러리의 마샬링 정보

형식 라이브러리 가져오기

추가 마샬링 정보나 다른 마샬링 정보를 사용하여 런타임 호출 가능 래퍼를 사용자 지정해야 하는 경우에는 다음 두 방법 중에서 선택할 수 있습니다.

  • 문제가 있는 구문을 검색한 다음 대체 구문으로 바꿔서 Interop 어셈블리를 편집합니다. 이 방법은 마샬링 변경 내용이 크게 중요하지 않은 경우에 적합합니다.

  • 기존 IDL(인터페이스 정의 언어) 파일 또는 형식 라이브러리를 기반으로 수동으로 래퍼 만들기. COM 형식을 직접 선언하려면 형식 라이브러리 가져오기(Tlbimp.exe)의 작동 방식, interop 마샬러의 기본 동작 및 COM에 대해 잘 알고 있어야 하므로 어렵습니다. 이 방법은 특수화된 형식이 포함된 전체 라이브러리가 있거나 RCW 소스 코드를 필요로 하는 경우에 유용합니다.

참고 항목

작업

방법: interop 어셈블리 편집

방법: 수동으로 래퍼 만들기

개념

COM 데이터 형식

COM 호출 가능 래퍼 사용자 지정

기타 리소스

COM Interop를 사용하여 데이터 마샬링