다음을 통해 공유


IMetaDataEmit::DefineImportMember 메서드

현재 범위 외부에 정의된 특정 형식 또는 모듈의 멤버에 대한 참조를 만들고 해당 참조에 대한 토큰을 정의합니다.

HRESULT DefineImportMember ( 
    [in]  IMetaDataAssemblyImport  *pAssemImport, 
    [in]  const void               *pbHashValue, 
    [in]  ULONG                    cbHashValue,
    [in]  IMetaDataImport          *pImport, 
    [in]  mdToken                  mbMember, 
    [in]  IMetaDataAssemblyEmit    *pAssemEmit, 
    [in]  mdToken                  tkParent, 
    [out] mdMemberRef              *pmr 
);

매개 변수

  • pAssemImport
    [in] 가져올 대상 멤버가 들어 있는 어셈블리를 나타내는 IMetaDataAssemblyImport 인터페이스입니다.

  • pbHashValue
    [in] pAssemImport에서 지정된 어셈블리의 해시가 들어 있는 배열입니다.

  • cbHashValue
    [in] pbHashValue 배열의 바이트 수입니다.

  • pImport
    [in] 가져올 대상 멤버가 들어 있는 메타데이터 범위를 나타내는 IMetaDataImport 인터페이스입니다.

  • mbMember
    [in] 대상 멤버를 지정하는 메타데이터 토큰입니다. 이 토큰은 mdMethodDef(멤버 메서드의 경우), mdProperty(멤버 속성의 경우) 또는 mdFieldDef(멤버 필드의 경우) 토큰일 수 있습니다.

  • pAssemEmit
    [in] 가져온 대상 멤버를 내보낼 어셈블리를 나타내는 IMetaDataAssemblyEmit 인터페이스입니다.

  • tkParent
    [in] 각각 대상 멤버를 소유하는 형식이나 모듈에 대한 mdTypeRef 또는 mdModuleRef 토큰입니다.

  • pmr
    [out] 해당 멤버 참조에 대해 현재 범위에 정의된 mdMemberRef 토큰입니다.

설명

DefineImportMember 메서드는 mbMember에 지정된 멤버, 다른 범위에 정의된 멤버 및 pImport에 지정된 멤버를 찾아 해당 속성을 검색합니다. 이 정보를 사용하여 현재 범위에 있는 IMetaDataEmit::DefineMemberRef 메서드를 호출하는 방식으로 멤버 참조를 만듭니다.

일반적으로 DefineImportMember 메서드를 사용하기 전에 대상 멤버의 부모 클래스, 인터페이스 또는 모듈에 대한 참조 형식이나 모듈 참조를 현재 범위에 만들어야 합니다. 그러면 이 참조의 메타데이터 토큰이 tkParent 인수에 전달됩니다. 나중에 컴파일러나 링커에서 해당 토큰이 확인되면 대상 멤버의 부모에 대한 참조는 만들 필요가 없습니다. 즉, 다음과 같이 수행합니다.

  • 대상 멤버가 필드나 메서드이면 IMetaDataEmit::DefineTypeRefByName 또는 IMetaDataEmit::DefineImportType 메서드를 사용하여 멤버의 부모 클래스나 부모 인터페이스에 대한 형식 참조를 현재 범위에 만듭니다.

  • 대상 멤버가 전역 변수이거나 전역 함수이면, 즉 클래스 또는 인터페이스의 멤버가 아니면 IMetaDataEmit::DefineModuleRef 메서드를 사용하여 멤버의 부모 모듈에 대한 모듈 참조를 현재 범위에 만듭니다.

  • 대상 멤버의 부모가 나중에 컴파일러나 링커에서 확인되면 mdTokenNil이 tkParent에 전달됩니다. 이러한 규칙이 적용되는 유일한 경우는 전역 함수나 전역 변수를 병합되는 현재 모듈 및 메타데이터에 연결될 .obj 파일에서 가져오고 있는 때입니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: Cor.h

라이브러리: MSCorEE.dll에서 리소스로 사용됨

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

참고 항목

참조

IMetaDataEmit 인터페이스

IMetaDataEmit2 인터페이스