Metode ICorProfilerCallback6::GetAssemblyReferences

[Didukung di .NET Framework 4.5.2 dan versi yang lebih baru]

Memberi tahu profiler bahwa rakitan berada dalam tahap pemuatan yang sangat awal, saat runtime bahasa umum melakukan panduan penutupan referensi rakitan.

Sintaks

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

Parameter

wszAssemblyPath
[in] Jalur dan nama rakitan yang metadatanya akan dimodifikasi.

pAsmRefProvider
[in] Penunjuk ke alamat antarmuka ICorProfilerAssemblyReferenceProvider yang menentukan referensi rakitan yang akan ditambahkan.

Tampilkan Nilai

Nilai yang dikembalikan dari panggilan balik ini diabaikan.

Keterangan

Panggilan balik ini dikontrol dengan mengatur bendera masker peristiwa COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES saat memanggil metode ICorProfilerCallback5::SetEventMask2. Jika profiler mendaftar untuk metode panggilan balik ICorProfilerCallback6::GetAssemblyReferences, runtime bahasa umum melewati jalur dan nama rakitan yang akan dimuat, bersama dengan penunjuk ke objek antarmuka ICorProfilerAssemblyReferenceProvider untuk metode tersebut. Profiler kemudian dapat memanggil metode ICorProfilerAssemblyReferenceProvider::AddAssemblyReference dengan objek COR_PRF_ASSEMBLY_REFERENCE_INFO untuk setiap rakitan target yang rencananya akan direferensikan dari rakitan yang ditentukan dalam panggilan balik GetAssemblyReferences.

Gunakan GetAssemblyReferences panggilan balik hanya jika profiler harus memodifikasi metadata rakitan untuk menambahkan referensi rakitan. (Tetapi perhatikan bahwa modifikasi aktual metadata rakitan dilakukan dalam metode panggilan balik ICorProfilerCallback::ModuleLoadFinished.) Profiler harus menerapkan metode panggilan balik GetAssemblyReferences untuk menginformasikan runtime bahasa umum (CLR) bahwa referensi rakitan akan ditambahkan ketika modul telah dimuat. Hal ini membantu memastikan bahwa keputusan berbagi rakitan yang dibuat oleh runtime bahasa umum selama tahap awal ini tetap valid meskipun profiler berencana untuk memodifikasi referensi rakitan metadata nanti. Ini dapat menghindari beberapa instans tempat modifikasi metadata profiler menyebabkan kesalahan SECURITY_E_INCOMPATIBLE_SHARE.

Profiler menggunakan objek ICorProfilerAssemblyReferenceProvider yang disediakan oleh metode ini untuk menambahkan referensi rakitan ke panduan penutupan referensi rakitan runtime bahasa umum. Objek ICorProfilerAssemblyReferenceProvider harus digunakan hanya dari dalam panggilan balik ini. Panggilan ke metode ICorProfilerAssemblyReferenceProvider::AddrakitanReference dari panggilan balik ini tidak menghasilkan metadata yang dimodifikasi, tetapi hanya dalam panduan penutupan referensi rakitan yang dimodifikasi. Profiler masih harus menggunakan objek IMetaDataAssemblyEmit untuk secara eksplisit menambahkan referensi rakitan dari dalam panggilan balik ICorProfilerCallback::ModuleLoadFinished untuk rakitan referensi, bahkan jika mengimplementasikan panggilan balik GetAssemblyReferences.

Profiler harus siap untuk menerima panggilan duplikat ke panggilan balik ini untuk rakitan yang sama, dan harus merespons secara identik untuk setiap panggilan duplikat tersebut (dengan membuat set panggilan ICorProfilerAssemblyReferenceProvider::AddAssemblyReference yang sama).

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorProf.idl, CorProf.h

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari 4.5.2

Lihat juga