IMetaDataEmit::DefineImportMember Method

Vytvoří odkaz na zadaný člen typu nebo modulu, který je definován mimo aktuální obor, a definuje token pro tento odkaz.

Syntax

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
);

Parameters

pAssemImport [v] IMetaDataAssemblyImport rozhraní, které představuje sestavení, ze kterého je cílový člen importován.

pbHashValue [v] Pole, které obsahuje hodnotu hash sestavení určeného parametrem pAssemImport.

cbHashValue [v] Počet bajtů v pbHashValue poli.

pImport [v] IMetaDataImport rozhraní, které představuje obor metadat, ze kterého je cílový člen importován.

mbMember [v] Token metadat, který určuje cílový člen. Token může být mdMethodDef token (pro metodu člena), mdProperty (pro vlastnost člena) nebo mdFieldDef (pro pole člena).

pAssemEmit [v] IMetaDataAssemblyEmit rozhraní, které představuje sestavení, do kterého je cílový člen importován.

tkParent [v] Typ mdTypeRef nebo modul nebo mdModuleRef token, který vlastní cílový člen.

pmr [ven] Token mdMemberRef definovaný v aktuálním oboru pro odkaz na člena.

Remarks

Metoda DefineImportMember vyhledá člen, určený mbMember, který je definován v jiném oboru, určený pImporta načte jeho vlastnosti. Tyto informace používá k volání IMetaDataEmit::D efineMemberRef metoda v aktuálním oboru vytvořit odkaz na člena.

Obecně platí, že před použitím DefineImportMember metody je nutné vytvořit v aktuálním oboru 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 . Není nutné vytvořit odkaz na nadřazený objekt cílového člena, pokud bude později vyřešen kompilátorem nebo linkerem. To summarize:

  • Pokud je cílovým členem pole nebo metoda, použijte metodu IMetaDataEmit::D efineTypeRefByName nebo IMetaDataEmit::D efineImportType metoda vytvořit odkaz na typ v aktuálním oboru pro nadřazenou třídu člena nebo nadřazené rozhraní.

  • Pokud je cílovým členem 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 nadřazený objekt cílového člena později přeloží kompilátor nebo linker, předejte mdTokenNiltkParentho . Jediný scénář, ve kterém se to týká, je, když se globální funkce nebo globální proměnná importují ze souboru .obj, který bude nakonec propojen s aktuálním modulem a sloučená metadata.

Requirements

Platformy: Viz podporované operační systémy .NET.

Header: Cor.h

Library: CorGuids.lib

See also