Metodo ICorProfilerCallback6::GetAssemblyReferences

[Supportato in .NET Framework 4.5.2 e versioni successive]

Indica al profiler che un assembly è in una fase iniziale di caricamento, quando Common Language Runtime esegue un percorso di chiusura del riferimento all'assembly.

Sintassi

HRESULT GetAssemblyReferences(        [in, string] const WCHAR* wszAssemblyPath,  
        [in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider  
);  

Parametri

wszAssemblyPath
[in] Percorso e nome dell'assembly i cui metadati verranno modificati.

pAsmRefProvider
[in] Puntatore all'indirizzo di un'interfaccia ICorProfilerAssemblyReferenceProvider che specifica i riferimenti all'assembly da aggiungere.

Valore restituito

I valori restituiti da questo callback vengono ignorati.

Commenti

Questo callback viene controllato impostando il flag maschera di evento COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES quando si chiama il metodo ICorProfilerCallback5::SetEventMask2 . Se il profiler esegue la registrazione per il metodo di callback ICorProfilerCallback6::GetAssemblyReferences , il runtime passa il percorso e il nome dell'assembly da caricare, insieme a un puntatore a un oggetto interfaccia ICorProfilerAssemblyReferenceProvider a tale metodo. Il profiler può quindi chiamare il metodo ICorProfilerAssemblyReferenceProvider::AddAssemblyReference con un COR_PRF_ASSEMBLY_REFERENCE_INFO oggetto per ogni assembly di destinazione a cui intende fare riferimento dall'assembly specificato nel GetAssemblyReferences callback.

Usare il callback GetAssemblyReferences solo se il profiler deve modificare i metadati di un assembly per aggiungere riferimenti. Si noti tuttavia che la modifica effettiva dei metadati di un assembly viene eseguita nel metodo di callback ICorProfilerCallback::ModuleLoadFinished. Il profiler deve implementare il GetAssemblyReferences metodo di callback per informare Common Language Runtime (CLR) che i riferimenti agli assembly verranno aggiunti al caricamento del modulo. Questo garantisce che le decisioni di condivisione prese da CLR in questa fase iniziale restino valide anche se il profiler prevede di modificare i riferimenti all'assembly di metadati in un secondo momento. In questo modo è possibile evitare alcune situazioni in cui le modifiche dei metadati del profiler provocano un errore SECURITY_E_INCOMPATIBLE_SHARE.

Il profiler usa l'oggetto ICorProfilerAssemblyReferenceProvider fornito da questo metodo per aggiungere riferimenti all'assembly CLR assembly reference closing walker. L'oggetto ICorProfilerAssemblyReferenceProvider deve essere utilizzato solo dall'interno di questo callback. Le chiamate al metodo ICorProfilerAssemblyReferenceProvider::AddAssemblyReference da questo callback non comportano metadati modificati, ma solo in una procedura di chiusura del riferimento all'assembly modificata. Il profiler dovrà comunque usare un oggetto IMetaDataAssemblyEmit per aggiungere in modo esplicito riferimenti ad assembly dall'interno del callback ICorProfilerCallback::ModuleLoadFinished per l'assembly di riferimento, anche se implementa il GetAssemblyReferences callback.

Il profiler deve essere preparato per ricevere chiamate duplicate a questo callback per lo stesso assembly e deve rispondere in modo identico per ogni chiamata duplicata(effettuando lo stesso set di chiamate ICorProfilerAssemblyReferenceProvider::AddAssemblyReference ).

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile dalla versione 4.5.2

Vedi anche