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 檔案中匯入時。
需求
**平台:**請參閱 .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