IMetaDataEmit::DefineImportMember – metoda
Vytvoří odkaz na zadaný člen typu nebo modulu, který je definován mimo aktuální obor, a definuje token pro tento odkaz.
Syntaxe
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
);
Parametry
pAssemImport
[v] IMetaDataAssemblyImport Rozhraní, které představuje sestavení, ze kterého je importován cílový člen.
pbHashValue
[v] Pole, které obsahuje hodnotu hash pro sestavení určené parametrem pAssemImport
.
cbHashValue
[v] Počet bajtů v pbHashValue
poli.
pImport
[v] IMetaDataImport Rozhraní, které představuje obor metadat, ze kterého je importován cílový člen.
mbMember
[v] Token metadat, který určuje cílového člena. Token může být token mdMethodDef
(pro metodu člena), mdProperty
(vlastnost člena) nebo mdFieldDef
(pro pole člena) token.
pAssemEmit
[v] IMetaDataAssemblyEmit rozhraní, které představuje sestavení, do kterého je cílový člen importován.
tkParent
[v] Token mdTypeRef
nebo mdModuleRef
pro typ nebo modul, který vlastní cílový člen.
pmr
[out] Token mdMemberRef
, který je definován v aktuálním oboru odkazu na člena.
Poznámky
Metoda DefineImportMember
vyhledá člen určený parametrem mbMember
, který je definován v jiném oboru určeném parametrem pImport
a načte jeho vlastnosti. Používá tyto informace k volání IMetaDataEmit::D efineMemberRef metoda v aktuálním oboru vytvořit člen odkaz.
Obecně platí, že před použitím DefineImportMember
metody musíte v aktuálním oboru vytvořit odkaz na typ nebo odkaz na modul pro nadřazenou třídu, rozhraní nebo modul cílového člena. Token metadat pro tento odkaz se pak předá v argumentu tkParent
. Pokud ho kompilátor nebo linker později přeloží, nemusíte vytvářet odkazy na nadřazenou položku cílového člena. Shrnutí:
Pokud je cílový člen pole nebo metoda, použijte metodu IMetaDataEmit::D efineTypeRefByName nebo IMetaDataEmit::D efineImportType metodu vytvořit odkaz na typ v aktuálním oboru pro nadřazenou třídu člena nebo nadřazené rozhraní.
Pokud je cílový člen globální proměnná nebo globální funkce (to znamená, že není členem třídy nebo rozhraní), použijte metodu IMetaDataEmit::D efineModuleRef k vytvoření odkazu na modul v aktuálním oboru pro nadřazený modul člena.
Pokud se nadřazený objekt cílového člena později vyřeší kompilátorem nebo linkerem, předejte
mdTokenNil
tkParent
ho . Jediný scénář, ve kterém to platí, je, když se globální funkce nebo globální proměnná importuje ze souboru .obj, který bude nakonec propojen s aktuálním modulem a metadata se sloučí.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: Cor.h
Knihovny: Používá se jako prostředek v MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 1.0