Condividi tramite


Metodo IMetaDataEmit::DefineImportMember

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

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 dal quale 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 pbHashValue.

  • pImport
    [in] Un’interfaccia IMetaDataImport che rappresenta l'ambito dei metadati dal quale viene importato il membro di destinazione.

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

  • pAssemEmit
    [in] Un’interfaccia IMetaDataAssemblyEmit che rappresenta l'assembly nel quale viene importato il membro di destinazione.

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

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

Note

Il metodo DefineImportMember cerca il membro, specificato da mbMember, definito in un altro ambito, indicato da pImport, e ne recupera le proprietà. Utilizza queste informazioni per chiamare il metodo IMetaDataEmit::DefineMemberRef nell'ambito corrente per creare il riferimento al membro.

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

  • Se il membro di destinazione è un campo o un metodo, utilizzare il metodo IMetaDataEmit::DefineTypeRefByName o IMetaDataEmit::DefineImportType 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::DefineModuleRef 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 tempo dal compilatore o dal linker, passare mdTokenNil in tkParent. L'unico caso in cui si applica questa situazione è quando una funzione globale o una variabile globale viene importata da un file con estensione obj che alla fine verrà collegato nel modulo corrente e i metadati verranno uniti.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: Cor.h

Libreria: utilizzata come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Vedere anche

Riferimenti

Interfaccia IMetaDataEmit

Interfaccia IMetaDataEmit2