Share via


IMetaDataEmit::DefineImportMember-Methode

Erstellt einen Verweis auf den angegebenen Member eines Typs oder Moduls, der außerhalb des aktuellen Bereichs definiert ist, und definiert ein Token für diesen Verweis.

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

Parameter

pAssemImport
[in] Eine IMetaDataAssemblyImport-Schnittstelle, die die Assembly darstellt, aus der der Zielmember importiert wird.

pbHashValue
[in] Ein Array, das den Hash für die durch pAssemImport angegebene Assembly enthält.

cbHashValue
[in] Die Anzahl der Bytes im pbHashValue-Array.

pImport
[in] Eine IMetaDataImport-Schnittstelle, die den Metadatenbereich darstellt, aus dem der Zielmember importiert wird.

mbMember
[in] Das Metadatentoken, das den Zielmember angibt. Das Token kann eine mdMethodDef (für eine Membermethode), mdProperty (für eine Membereigenschaft) oder mdFieldDef (für ein Memberfeld) sein.

pAssemEmit
[in] Eine IMetaDataAssemblyEmit-Schnittstelle, die die Assembly darstellt, in die der Zielmember importiert wird.

tkParent
[in] Das mdTypeRef- oder mdModuleRef-Token für den Typ bzw. das Modul, der/das den Zielmember besitzt.

pmr
[out] Das mdMemberRef-Token, das im aktuellen Bereich für den Memberverweis definiert ist.

Bemerkungen

Die DefineImportMember-Methode sucht nach dem durch mbMember angegebenen Member, der in einem anderen durch pImport angegebenen Bereich definiert ist, und ruft seine Eigenschaften ab. Diese Informationen werden verwendet, um die IMetaDataEmit::DefineMemberRef-Methode im aktuellen Bereich zum Erstellen des Memberverweises aufzurufen.

Im Allgemeinen müssen Sie vor der Verwendung der DefineImportMember-Methode im aktuellen Bereich einen Typverweis oder einen Modulverweis für die übergeordnete Klasse, die Schnittstelle oder das Modul des Zielmembers erstellen. Das Metadatentoken für diesen Verweis wird dann im tkParent-Argument übergeben. Sie müssen keinen Verweis auf das übergeordnete Element des Zielmembers erstellen, wenn er später vom Compiler oder Linker aufgelöst wird. Zusammenfassung:

  • Wenn es sich bei dem Zielmember um ein Feld oder eine Methode handelt, verwenden Sie entweder die IMetaDataEmit::DefineTypeRefByName-Methode oder die IMetaDataEmit::DefineImportType-Methode, um einen Typverweis im aktuellen Bereich für die übergeordnete Klasse oder übergeordnete Schnittstelle des Members zu erstellen.

  • Wenn der Zielmember eine globale Variable oder globale Funktion ist (d. h. kein Member einer Klasse oder Schnittstelle), verwenden Sie die IMetaDataEmit::DefineModuleRef-Methode, um einen Modulverweis im aktuellen Bereich für das übergeordnete Modul des Members zu erstellen.

  • Wenn das übergeordnete Element des Zielmembers später vom Compiler oder Linker aufgelöst wird, übergeben Sie mdTokenNil in tkParent. Dies trifft nur in einem einzigen Szenario zu: Wenn eine globale Funktion oder globale Variable aus einer OBJ-Datei importiert wird, die letztendlich mit dem aktuellen Modul verknüpft und die Metadaten zusammengeführt werden.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: Cor.h

Bibliothek: Als Ressource in „MSCorEE.dll“ verwendet

.NET Framework-Versionen: Seit Version 1.0 verfügbar

Weitere Informationen