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

Ver também