Método ICorProfilerCallback6::GetAssemblyReferences
[Suportado no .NET Framework 4.5.2 e versões posteriores]
Notifica o gerador de perfis de que uma assemblagem está numa fase de carregamento muito inicial, quando o runtime de linguagem comum executa uma caminhada de encerramento de referência de assemblagem.
Sintaxe
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parâmetros
wszAssemblyPath
[in] O caminho e o nome da assemblagem cujos metadados serão modificados.
pAsmRefProvider
[in] Um ponteiro para o endereço de uma interface ICorProfilerAssemblyReferenceProvider que especifica as referências de assemblagem a adicionar.
Devolver Valor
Os valores devolvidos desta chamada de retorno são ignorados.
Observações
Esta chamada de retorno é controlada ao definir o sinalizador de máscara de evento COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES ao chamar o método ICorProfilerCallback5::SetEventMask2 . Se o profiler se registar no método de chamada de retorno ICorProfilerCallback6::GetAssemblyReferences , o runtime transmite o caminho e o nome da assemblagem a carregar, juntamente com um ponteiro para um objeto de interface ICorProfilerAssemblyReferenceProvider para esse método. Em seguida, o gerador de perfis pode chamar o método ICorProfilerAssemblyReferenceProvider::AddAssemblyReference com um COR_PRF_ASSEMBLY_REFERENCE_INFO
objeto para cada assemblagem de destino que pretende referenciar a partir da assemblagem especificada na GetAssemblyReferences
chamada de retorno.
Utilize a GetAssemblyReferences
chamada de retorno apenas se o gerador de perfis tiver de modificar os metadados de uma assemblagem para adicionar referências de assemblagem. (No entanto, tenha em atenção que a modificação real dos metadados de uma assemblagem é feita no método de chamada de retorno ICorProfilerCallback::ModuleLoadFinished.) O profiler deve implementar o GetAssemblyReferences
método de chamada de retorno para informar o runtime de linguagem comum (CLR) de que as referências de assemblagem serão adicionadas quando o módulo tiver sido carregado. Isto ajuda a garantir que as decisões de partilha de assemblagem tomadas pelo CLR durante esta fase inicial permanecem válidas, embora o gerador de perfis planeie modificar as referências de assemblagem de metadados mais tarde. Isto pode evitar algumas instâncias em que as modificações de metadados do profiler causam um SECURITY_E_INCOMPATIBLE_SHARE
erro.
O profiler utiliza o objeto ICorProfilerAssemblyReferenceProvider fornecido por este método para adicionar referências de assemblagem ao controlador de fecho de referência de assemblagem CLR. O objeto ICorProfilerAssemblyReferenceProvider deve ser utilizado apenas a partir desta chamada de retorno. As chamadas para o método ICorProfilerAssemblyReferenceProvider::AddAssemblyReference desta chamada de retorno não resultam em metadados modificados, mas apenas numa caminhada de encerramento de referência de assemblagem modificada. O profiler ainda terá de utilizar um objeto IMetaDataAssemblyEmit para adicionar explicitamente referências de assemblagem a partir da chamada de retorno ICorProfilerCallback::ModuleLoadFinished para a assemblagem de referência, mesmo que implemente a GetAssemblyReferences
chamada de retorno.
O gerador de perfis deve estar preparado para receber chamadas duplicadas para esta chamada de retorno para a mesma assemblagem e deve responder de forma idêntica para cada chamada duplicada (ao fazer o mesmo conjunto de chamadas ICorProfilerAssemblyReferenceProvider::AddAssemblyReference ).
Requisitos
Plataformas: Veja Requisitos do Sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework Versões: Disponível desde 4.5.2