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
entkParent
. 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