Método IMetaDataEmit::DefineImportMember
Cria uma referência ao membro especificado de um tipo ou módulo definido fora do escopo 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 o assembly do qual o membro de destino é importado.
pbHashValue
[in] Uma matriz que contém o hash do assembly especificado por pAssemImport
.
cbHashValue
[in] O número de bytes na matriz pbHashValue
.
pImport
[in] Uma interface IMetaDataImport que representa o escopo de metadados 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
(para um método membro), mdProperty
(para uma propriedade membro) ou mdFieldDef
(para um campo membro).
pAssemEmit
[in] Uma interface IMetaDataAssemblyEmit que representa o assembly no qual o membro de destino é importado.
tkParent
[in] O token mdTypeRef
ou mdModuleRef
do tipo ou módulo, respectivamente, que possui o membro de destino.
pmr
[out] O token mdMemberRef
definido no escopo atual para a referência de membro.
Comentários
O método DefineImportMember
procura o membro, especificado por mbMember
, que é definido em outro escopo, especificado por pImport
, e recupera suas propriedades. Ele usa essas informações para chamar o método IMetaDataEmit::DefineMemberRef no escopo atual para criar a referência de membro.
Geralmente, antes de usar o método DefineImportMember
, você precisa criar, no escopo atual, uma referência de tipo ou referência de módulo para a classe pai, interface ou módulo do membro de destino. O token de metadados para essa referência é então passado no argumento tkParent
. Você não precisa criar uma referência ao pai do membro de destino se ela for resolvida posteriormente pelo compilador ou pelo vinculador. Para resumir:
Se o membro de destino for um campo ou método, use o método IMetaDataEmit::DefineTypeRefByName ou IMetaDataEmit::DefineImportType para criar uma referência de tipo, no escopo atual, para a classe pai ou a interface pai do membro.
Se o membro de destino for uma variável global ou uma função global (ou seja, não um membro de uma classe ou interface), use o método IMetaDataEmit::DefineModuleRef para criar uma referência de módulo, no escopo atual, para o módulo pai do membro.
Se o pai do membro de destino for resolvido posteriormente pelo compilador ou pelo vinculador, passe
mdTokenNil
emtkParent
. O único cenário em que isso se aplica é quando uma função global ou variável global está sendo importada de um arquivo .obj que, em última análise, será vinculado ao módulo atual e aos metadados mesclados.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: Cor.h
Biblioteca: usada como um recurso no MsCorEE.dll
Versões do .NET Framework: Disponíveis desde a versão 1.0