Sdílet prostřednictvím


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 pImporta 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 mdTokenNiltkParentho . 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

Viz také