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
메서드는 pImport
로 지정된 다른 범위에 정의되어 있는 mbMember
로 지정된 멤버를 조회하고 해당 속성을 검색합니다. 이 정보를 통해 현재 범위에서 IMetaDataEmit::DefineMemberRef 메서드를 호출하여 멤버 참조를 만듭니다.
일반적으로 DefineImportMember
메서드를 사용하기 전에 대상 멤버의 부모 클래스, 인터페이스 또는 모듈에 대한 형식 참조 또는 모듈 참조를 현재 범위에서 만들어야 합니다. 그런 다음, 이 참조에 대한 메타데이터 토큰이 tkParent
인수에 전달됩니다. 나중에 컴파일러 또는 링커에서 확인될 경우 대상 멤버의 부모에 대한 참조를 만들 필요가 없습니다. 요약:
대상 멤버가 필드 또는 메서드인 경우 IMetaDataEmit::DefineTypeRefByName 또는 IMetaDataEmit::DefineImportType 메서드를 사용하여 현재 범위에서 멤버의 부모 클래스 또는 부모 인터페이스에 대한 형식 참조를 만듭니다.
대상 멤버가 전역 변수 또는 전역 함수인 경우(즉, 클래스 또는 인터페이스의 멤버가 아님) IMetaDataEmit::DefineModuleRef 메서드를 사용하여 현재 범위에서 멤버의 부모 모듈에 대한 모듈 참조를 만듭니다.
나중에 컴파일러 또는 링커에서 대상 멤버의 부모를 확인하는 경우
tkParent
에서mdTokenNil
을 전달합니다. 이것이 적용되는 유일한 시나리오는 전역 함수 또는 전역 변수를 궁극적으로 현재 모듈에 연결되고 메타데이터가 병합된 .obj 파일에서 가져오는 경우입니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: Cor.h
라이브러리: MsCorEE.dll에서 리소스로 사용됩니다.
.NET Framework 버전: 1.0부터 사용 가능
참고 항목
.NET