ICorProfilerCallback6::GetAssemblyReferences (Método)
[Compatible con .NET Framework 4.5.2 y versiones posteriores]
Notifica al generador de perfiles que un ensamblado está en una etapa de carga muy temprana, cuando Common Language Runtime realiza un rastreo de cierre de referencias de ensamblado.
Sintaxis
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parámetros
wszAssemblyPath
[in] Ruta de acceso y nombre del ensamblado cuyos metadatos se modificarán.
pAsmRefProvider
[in] Puntero a la dirección de una interfaz ICorProfilerAssemblyReferenceProvider que especifica las referencias de ensamblado que se van a agregar.
Valor devuelto
Los valores devueltos de esta devolución de llamada se pasan por alto.
Comentarios
Esta devolución de llamada se controla estableciendo la marca de máscara de evento COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES cuando se llama al método ICorProfilerCallback5::SetEventMask2. Si el generador de perfiles se registra para el método de la devolución de llamada de ICorProfilerCallback6::GetAssemblyReferences, el runtime pasa la ruta de acceso y el nombre del ensamblado que se va a cargar, junto con un puntero a un objeto de interfaz ICorProfilerAssemblyReferenceProvider para ese método. Después, el generador de perfiles llama al método ICorProfilerAssemblyReferenceProvider::AddAssemblyReference con un objeto COR_PRF_ASSEMBLY_REFERENCE_INFO
para cada ensamblado de destino al que tiene planeado hacer referencia desde el ensamblado especificado en la devolución de llamada GetAssemblyReferences
.
Use la devolución de llamada GetAssemblyReferences
solo si el generador de perfiles tiene que modificar los metadatos de un ensamblado para agregar referencias de ensamblado. (Pero tenga en cuenta que la modificación real de los metadatos de un ensamblado se hace en el método de devolución de llamada ICorProfilerCallback::ModuleLoadFinished). El generador de perfiles debe implementar el método de devolución de llamada GetAssemblyReferences
para informar a Common Language Runtime (CLR) de que las referencias de ensamblado se agregarán cuando se haya cargado el módulo. Esto garantiza que las decisiones que tome CLR acerca del uso compartido de ensamblados en esta fase temprana seguirán siendo válidas aunque el generador de perfiles tenga planeado modificar las referencias de ensamblado de metadatos más adelante. De esta manera se pueden evitar algunas instancias en las que las modificaciones de los metadatos del generador de perfiles provocan un error SECURITY_E_INCOMPATIBLE_SHARE
.
El generador de perfiles usa el objeto ICorProfilerAssemblyReferenceProvider que este método proporciona para agregar referencias de ensamblado al rastreador de cierre de referencias de ensamblado de CLR. El objeto ICorProfilerAssemblyReferenceProvider solo se debe usar desde esta devolución de llamada. Las llamadas al método ICorProfilerAssemblyReferenceProvider::AddAssemblyReference desde esta devolución de llamada no producen metadatos modificados, solo un rastreo de cierre de referencias de ensamblado modificado. El generador de perfiles aún tendrá que usar un objeto IMetaDataAssemblyEmit para agregar explícitamente referencias de ensamblado desde la devolución de llamada ICorProfilerCallback::ModuleLoadFinished para el ensamblado de referencia, aunque implemente la devolución de llamada de GetAssemblyReferences
.
El generador de llamadas se debe preparar para recibir llamadas duplicadas a esta devolución de llamada para el mismo ensamblado, y debe responder de forma idéntica para cada una de estas llamadas duplicadas (realizando el mismo conjunto de llamadas a ICorProfilerAssemblyReferenceProvider::AddAssemblyReference).
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: disponible a partir de la versión 4.5.2