Dela via


IMetaDataEmit::D efineImportMember-metod

Skapar en referens till den angivna medlemmen av en typ eller modul som definieras utanför det aktuella omfånget och definierar en token för den referensen.

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

Parametrar

pAssemImport
[i] Ett IMetaDataAssemblyImport-gränssnitt som representerar sammansättningen som målmedlemmen importeras från.

pbHashValue
[i] En matris som innehåller hashen för sammansättningen som anges av pAssemImport.

cbHashValue
[i] Antalet byte i matrisen pbHashValue .

pImport
[i] Ett IMetaDataImport-gränssnitt som representerar metadataomfånget som målmedlemmen importeras från.

mbMember
[i] Den metadatatoken som anger målmedlemmen. Token kan vara en mdMethodDef (för en medlemsmetod), mdProperty (för en medlemsegenskap) eller mdFieldDef (för ett medlemsfält) token.

pAssemEmit
[i] Ett IMetaDataAssemblyEmit-gränssnitt som representerar den sammansättning som målmedlemmen importeras till.

tkParent
[i] Eller-token mdTypeRefmdModuleRef för den typ eller modul som äger målmedlemmen.

pmr
[ut] Den mdMemberRef token som definieras i det aktuella omfånget för medlemsreferensen.

Kommentarer

Metoden DefineImportMember söker upp medlemmen, som anges av mbMember, som definieras i ett annat omfång, som anges av pImportoch hämtar dess egenskaper. Den använder den här informationen för att anropa metoden IMetaDataEmit::D efineMemberRef i det aktuella omfånget för att skapa medlemsreferensen.

Innan du använder DefineImportMember metoden måste du i det aktuella omfånget vanligtvis skapa en typreferens eller modulreferens för målmedlemmens överordnade klass, gränssnitt eller modul. Metadatatoken för den här referensen tkParent skickas sedan i argumentet. Du behöver inte skapa en referens till målmedlemmens överordnade om den kommer att lösas senare av kompilatorn eller länkaren. Sammanfattningsvis:

  • Om målmedlemmen är ett fält eller en metod använder du antingen metoden IMetaDataEmit::D efineTypeRefByName eller metoden IMetaDataEmit::D efineImportType för att skapa en typreferens i det aktuella omfånget för medlemmens överordnade klass eller överordnade gränssnitt.

  • Om målmedlemmen är en global variabel eller global funktion (dvs. inte medlem i en klass eller ett gränssnitt) använder du metoden IMetaDataEmit::D efineModuleRef för att skapa en modulreferens i det aktuella omfånget för medlemmens överordnade modul.

  • Om målmedlemmens överordnade objekt kommer att lösas senare av kompilatorn eller länkaren skickar mdTokenNil du in tkParent. Det enda scenario där detta gäller är när en global funktion eller global variabel importeras från en .obj-fil som slutligen länkas till den aktuella modulen och metadata slås samman.

Krav

Plattformar: Se Systemkrav.

Huvudet: Cor.h

Bibliotek: Används som en resurs i MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 1.0

Se även