Partilhar via


Método IMetaDataEmit::D efineImportMember

Cria uma referência ao membro especificado de um tipo ou módulo definido fora do âmbito atual e define um token para essa referência.

Sintaxe

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

Parâmetros

pAssemImport
[in] Uma interface IMetaDataAssemblyImport que representa a assemblagem a partir da qual o membro de destino é importado.

pbHashValue
[in] Uma matriz que contém o hash para a assemblagem especificada por pAssemImport.

cbHashValue
[in] O número de bytes na pbHashValue matriz.

pImport
[in] Uma interface IMetaDataImport que representa o âmbito de metadados a partir do qual o membro de destino é importado.

mbMember
[in] O token de metadados que especifica o membro de destino. O token pode ser um mdMethodDef token (para um método membro), mdProperty (para uma propriedade de membro) ou mdFieldDef (para um campo de membro).

pAssemEmit
[in] Uma interface IMetaDataAssemblyEmit que representa a assemblagem na qual o membro de destino é importado.

tkParent
[in] O mdTypeRef token ou mdModuleRef para o tipo ou módulo, respetivamente, que é o proprietário do membro de destino.

pmr
[fora] O mdMemberRef token definido no âmbito atual da referência de membro.

Observações

O DefineImportMember método procura o membro, especificado por mbMember, que é definido noutro âmbito, especificado por pImporte obtém as respetivas propriedades. Utiliza estas informações para chamar o método IMetaDataEmit::D efineMemberRef no âmbito atual para criar a referência de membro.

Geralmente, antes de utilizar o DefineImportMember método, tem de criar, no âmbito atual, uma referência de tipo ou referência de módulo para a classe principal, interface ou módulo do membro de destino. O token de metadados para esta referência é então transmitido no tkParent argumento. Não precisa de criar uma referência ao elemento principal do membro de destino se este for resolvido mais tarde pelo compilador ou pelo linker. Para resumir:

  • Se o membro de destino for um campo ou método, utilize o método IMetaDataEmit::D efineTypeRefByName ou o método IMetaDataEmit::D efineImportType para criar uma referência de tipo, no âmbito atual, para a classe principal ou interface principal do membro.

  • Se o membro de destino for uma variável global ou uma função global (ou seja, não membro de uma classe ou interface), utilize o método IMetaDataEmit::D efineModuleRef para criar uma referência de módulo, no âmbito atual, para o módulo principal do membro.

  • Se o elemento principal do membro de destino for resolvido mais tarde pelo compilador ou pelo linker, transmita mdTokenNiltkParent. O único cenário em que isto se aplica é quando uma função global ou variável global está a ser importada a partir de um ficheiro .obj que, em última análise, será ligado ao módulo atual e aos metadados intercalados.

Requisitos

Plataformas: Veja Requisitos do Sistema.

Cabeçalho: Cor.h

Biblioteca: Utilizado como recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 1.0

Ver também