Compartir por


IMetaDataEmit::DefineImportMember Method

Crea una referencia al miembro especificado de un tipo o módulo que se define fuera del ámbito actual y define un token para esa referencia.

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

Parameters

pAssemImport [in] Interfaz IMetaDataAssemblyImport que representa el ensamblado desde el que se importa el miembro de destino.

pbHashValue [in] Matriz que contiene el hash del ensamblado especificado por pAssemImport.

cbHashValue [in] Número de bytes de la pbHashValue matriz.

pImport [in] Interfaz IMetaDataImport que representa el ámbito de metadatos desde el que se importa el miembro de destino.

mbMember [in] Token de metadatos que especifica el miembro de destino. El token puede ser un mdMethodDef token (para un método miembro), mdProperty (para una propiedad miembro) o mdFieldDef (para un campo miembro).

pAssemEmit [in] Interfaz IMetaDataAssemblyEmit que representa el ensamblado en el que se importa el miembro de destino.

tkParent [in] El mdTypeRef token o mdModuleRef para el tipo o módulo, respectivamente, que posee el miembro de destino.

pmr [out] Token mdMemberRef definido en el ámbito actual de la referencia de miembro.

Remarks

El DefineImportMember método busca el miembro, especificado por mbMember, que se define en otro ámbito, especificado por pImporty recupera sus propiedades. Usa esta información para llamar al método IMetaDataEmit::D efineMemberRef en el ámbito actual para crear la referencia de miembro.

Por lo general, antes de usar el DefineImportMember método , debe crear, en el ámbito actual, una referencia de tipo o una referencia de módulo para la clase primaria, interfaz o módulo del miembro de destino. A continuación, el token de metadatos de esta referencia se pasa en el tkParent argumento . No es necesario crear una referencia al elemento primario del miembro de destino si el compilador o enlazador lo resolverán más adelante. To summarize:

  • Si el miembro de destino es un campo o método, use el método IMetaDataEmit::D efineTypeRefByName o el método IMetaDataEmit::D efineImportType para crear una referencia de tipo, en el ámbito actual, para la clase primaria o la interfaz primaria del miembro.

  • Si el miembro de destino es una variable global o una función global (es decir, no un miembro de una clase o interfaz), use el método IMetaDataEmit::D efineModuleRef para crear una referencia de módulo, en el ámbito actual, para el módulo primario del miembro.

  • Si el compilador o enlazador resolverán más adelante el elemento primario del miembro de destino, pase mdTokenNiltkParent. El único escenario en el que esto se aplica es cuando se importa una función global o una variable global desde un archivo de .obj que se vinculará en última instancia al módulo actual y los metadatos combinados.

Requirements

Plataformas: Consulte Sistemas operativos compatibles con .NET.

Header: Cor.h

Library: CorGuids.lib

See also