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 方法,在目前範圍內為成員的父模組建立模組參考。
如果目標成員的父系稍後會由編譯器或連結器解析,則在
tkParent
中傳入mdTokenNil
。 當全域函式或全域變數是從最終連結至目前模組和中繼資料合併的 .obj 檔案匯入時,是唯一適用的案例。
規格需求
平台:請參閱系統需求。
標頭:Cor.h
程式庫:作為 MSCorEE.dll 中的資源使用
.NET Framework版本:自 1.0 起提供