ICorProfilerCallback6::GetAssemblyReferences, metod
[Stöds i .NET Framework 4.5.2 och senare versioner]
Meddelar profileraren att en sammansättning är i ett mycket tidigt inläsningssteg, när common language runtime utför en genomgång av stängning av sammansättningsreferenser.
Syntax
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parametrar
wszAssemblyPath
[in] Sökvägen och namnet på sammansättningen vars metadata kommer att ändras.
pAsmRefProvider
[in] En pekare till adressen för ett ICorProfilerAssemblyReferenceProvider-gränssnitt som anger sammansättningsreferenserna som ska läggas till.
Returvärde
Returvärden från återanropet ignoreras.
Kommentarer
Återanropet styrs genom att ange flaggan COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES händelsemask när du anropar metoden ICorProfilerCallback5::SetEventMask2 . Om profileraren registrerar sig för återanropsmetoden ICorProfilerCallback6::GetAssemblyReferences skickar runtime sökvägen och namnet på sammansättningen som ska läsas in, tillsammans med en pekare till ett ICorProfilerAssemblyReferenceProvider-gränssnittsobjekt till den metoden. Profileraren kan sedan anropa metoden ICorProfilerAssemblyReferenceProvider::AddAssemblyReference med ett COR_PRF_ASSEMBLY_REFERENCE_INFO
-objekt för varje målsammansättning som den planerar att referera till från den sammansättning som anges i återanropet GetAssemblyReferences
.
Använd bara motringningen GetAssemblyReferences
om profileraren måste ändra en sammansättnings metadata för att lägga till sammansättningsreferenser. (Observera dock att den faktiska ändringen av en sammansättnings metadata görs i metoden ICorProfilerCallback::ModuleLoadFinishedcallback.) Profileraren bör implementera GetAssemblyReferences
motringningsmetoden för att informera CLR (Common Language Runtime) om att sammansättningsreferenser läggs till när modulen har lästs in. Detta säkerställer att beslut om sammansättningsdelning som fattas av CLR i det här tidiga skedet förblir giltiga även om profileraren planerar att ändra metadatasammansättningsreferenserna senare. Detta kan undvika vissa instanser där ändringar av profilerarmetadata orsakar ett SECURITY_E_INCOMPATIBLE_SHARE
fel.
Profileraren använder objektet ICorProfilerAssemblyReferenceProvider som tillhandahålls av den här metoden för att lägga till sammansättningsreferenser till CLR-sammansättningsreferensens stängningsvandrare. ICorProfilerAssemblyReferenceProvider-objektet ska endast användas inifrån det här återanropet. Anrop till metoden ICorProfilerAssemblyReferenceProvider::AddAssemblyReference från det här återanropet resulterar inte i ändrade metadata, utan endast i en modifierad genomgång av stängning av sammansättningsreferenser. Profileraren måste fortfarande använda ett IMetaDataAssemblyEmit-objekt för att uttryckligen lägga till sammansättningsreferenser från ICorProfilerCallback::ModuleLoadFinished-återanropet för referenssammansättningen, även om återanropet GetAssemblyReferences
implementeras.
Profileraren bör vara beredd på att ta emot dubbla anrop till det här återanropet för samma sammansättning och bör svara identiskt för varje sådant duplicerat anrop (genom att göra samma uppsättning ICorProfilerAssemblyReferenceProvider::AddAssemblyReference-anrop ).
Krav
Plattformar: Se Systemkrav.
Huvudet: CorProf.idl, CorProf.h
Bibliotek: CorGuids.lib
.NET Framework versioner: Tillgänglig sedan 4.5.2