Condividi tramite


Metodo IMetaDataEmit::DefineImportMember

Crea un riferimento al membro specificato di un tipo o di un modulo definito all'esterno dell'ambito corrente e definisce un token per tale riferimento.

Sintassi

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

Parametri

pAssemImport
[in] Interfaccia IMetaDataAssemblyImport che rappresenta l'assembly da cui viene importato il membro di destinazione.

pbHashValue
[in] Matrice che contiene l'hash per l'assembly specificato da pAssemImport.

cbHashValue
[in] Numero di byte nella matrice di pbHashValue.

pImport
[in] Interfaccia IMetaDataImport che rappresenta l'ambito dei metadati da cui viene importato il membro di destinazione.

mbMember
[in] Token di metadati che specifica il membro di destinazione. Il token può essere un mdMethodDef token (per un metodo membro), mdProperty (per una proprietà membro) o mdFieldDef (per un campo membro).

pAssemEmit
[in] Interfaccia IMetaDataAssemblyEmit che rappresenta l'assembly in cui viene importato il membro di destinazione.

tkParent
[in] Token mdTypeRef o mdModuleRef per il tipo o il modulo, rispettivamente, proprietario del membro di destinazione.

pmr
[out] Token mdMemberRef definito nell'ambito corrente per il riferimento al membro.

Commenti

Il DefineImportMember metodo cerca il membro, specificato da mbMember, definito in un altro ambito, specificato da pImporte recupera le relative proprietà. Usa queste informazioni per chiamare il metodo IMetaDataEmit::D efineMemberRef nell'ambito corrente per creare il riferimento al membro.

In genere, prima di usare il DefineImportMember metodo , è necessario creare, nell'ambito corrente, un riferimento al tipo o un riferimento al modulo per la classe padre, l'interfaccia o il modulo del membro di destinazione. Il token di metadati per questo riferimento viene quindi passato nell'argomento tkParent . Non è necessario creare un riferimento all'elemento padre del membro di destinazione se verrà risolto in un secondo momento dal compilatore o dal linker. Per concludere:

  • Se il membro di destinazione è un campo o un metodo, utilizzare il metodo IMetaDataEmit::D efineTypeRefByName o IMetaDataEmit::D efineImportType per creare un riferimento al tipo, nell'ambito corrente, per la classe padre o l'interfaccia padre del membro.

  • Se il membro di destinazione è una variabile globale o una funzione globale ,ovvero non un membro di una classe o di un'interfaccia, utilizzare il metodo IMetaDataEmit::D efineModuleRef per creare un riferimento al modulo, nell'ambito corrente, per il modulo padre del membro.

  • Se l'elemento padre del membro di destinazione verrà risolto in un secondo momento dal compilatore o dal linker, passare mdTokenNiltkParent. L'unico scenario in cui questo vale è quando viene importata una funzione globale o una variabile globale da un file con estensione obj che verrà infine collegato al modulo corrente e ai metadati uniti.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: Cor.h

Libreria: Usato come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile dalla versione 1.0

Vedi anche