Compartir a través de


IMetaDataEmit::DefineImportMember (Método)

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.

Sintaxis

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] Interfaz IMetaDataAssemblyImport que representa el ensamblado desde el que se importa el miembro de destino.

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

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

pImport
[in] Interfaz IMetaDataImport que representa el ámbito de los 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 de mdMethodDef (para un método de miembro), mdProperty (para una propiedad de miembro) o mdFieldDef (para un campo de miembro).

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

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

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

Comentarios

El método DefineImportMember busca el miembro, que especifica mbMember, que se define en otro ámbito, que especifica pImport, y recupera sus propiedades. Usa esta información para llamar al método IMetaDataEmit::DefineMemberRef en el ámbito actual a fin de crear la referencia de miembro.

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

  • Si el miembro de destino es un campo o método, use el método IMetaDataEmit::DefineTypeRefByName o IMetaDataEmit::DefineImportType a fin de 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 es un miembro de una clase o interfaz), use el método IMetaDataEmit::DefineModuleRef a fin de crear una referencia de módulo, en el ámbito actual, para el módulo primario del miembro.

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

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: Cor.h

Biblioteca: usada como recurso en MSCorEE.dll

Versiones de .NET Framework: está disponible desde la versión 1.0

Consulte también