Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
[Supportato in .NET Framework 4.5.2 e versioni successive]
Notifica al profiler che un assembly si trova in una fase di caricamento molto precoce, quando Common Language Runtime esegue una procedura di chiusura del riferimento all'assembly.
Syntax
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parameters
wszAssemblyPath [in] Percorso e nome dell'assembly di cui verranno modificati i metadati.
pAsmRefProvider [in] Puntatore all'indirizzo di un'interfaccia ICorProfilerAssemblyReferenceProvider che specifica i riferimenti all'assembly da aggiungere.
Return Value
I valori restituiti da questo callback vengono ignorati.
Remarks
Questo callback è controllato impostando il flag maschera 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 prevede di fare riferimento dall'assembly specificato nel GetAssemblyReferences callback.
Usare il GetAssemblyReferences callback solo se il profiler deve modificare i metadati di un assembly per aggiungere riferimenti ad assembly. 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. Ciò consente di garantire che le decisioni di condivisione degli assembly prese da CLR durante questa fase iniziale rimangano valide anche se il profiler prevede di modificare i riferimenti all'assembly di metadati in un secondo momento. Ciò può evitare alcune istanze in cui le modifiche ai metadati del profiler causano un SECURITY_E_INCOMPATIBLE_SHARE errore.
Il profiler usa l'oggetto ICorProfilerAssemblyReferenceProvider fornito da questo metodo per aggiungere riferimenti agli assembly 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 ).
Requirements
Piattaforme: vedere Requisiti di sistema.
Intestazione: CorProf.idl, CorProf.h
Library: CorGuids.lib
Versioni di .NET Framework: Disponibile dalla versione 4.5.2