Udostępnij za pośrednictwem


Metoda ICorProfilerCallback6::GetAssemblyReferences

[Obsługiwane w wersji .NET Framework 4.5.2 i nowszych]

Powiadamia profilera, że zestaw znajduje się na bardzo wczesnym etapie ładowania, gdy środowisko uruchomieniowe języka wspólnego wykonuje przewodnik zamknięcia odwołania do zestawu.

Składnia

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

Parametry

wszAssemblyPath
[w] Ścieżka i nazwa zestawu, którego metadane zostaną zmodyfikowane.

pAsmRefProvider
[w] Wskaźnik do adresu interfejsu ICorProfilerAssemblyReferenceProvider , który określa odwołania do zestawu do dodania.

Wartość zwracana

Wartości zwracane z tego wywołania zwrotnego są ignorowane.

Uwagi

To wywołanie zwrotne jest kontrolowane przez ustawienie flagi maski zdarzeń COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES podczas wywoływania metody ICorProfilerCallback5::SetEventMask2 . Jeśli profiler rejestruje się dla metody wywołania zwrotnego ICorProfilerCallback6::GetAssemblyReferences , środowisko uruchomieniowe przekazuje ścieżkę i nazwę zestawu do załadowania wraz ze wskaźnikiem do obiektu interfejsu ICorProfilerAssemblyReferenceProvider dla tej metody. Profiler może następnie wywołać metodę ICorProfilerAssemblyReferenceProvider::AddAssemblyReference z obiektem COR_PRF_ASSEMBLY_REFERENCE_INFO dla każdego zestawu docelowego, do których planuje odwołanie z zestawu określonego w wywołaniu zwrotnym GetAssemblyReferences .

GetAssemblyReferences Użyj wywołania zwrotnego tylko wtedy, gdy profiler musi zmodyfikować metadane zestawu w celu dodania odwołań do zestawu. (Należy jednak pamiętać, że rzeczywista modyfikacja metadanych zestawu jest wykonywana w metodzie ICorProfilerCallback::ModuleLoadFinishedwywołania zwrotnego). Profiler powinien zaimplementować metodę GetAssemblyReferences wywołania zwrotnego, aby poinformować środowisko uruchomieniowe języka wspólnego (CLR), że odwołania do zestawów zostaną dodane po załadowaniu modułu. Pomaga to zapewnić, że decyzje dotyczące udostępniania zestawów podejmowane przez clR na tym wczesnym etapie pozostają prawidłowe, chociaż profiler planuje później zmodyfikować odwołania do zestawu metadanych. Może to uniknąć niektórych wystąpień, w których modyfikacje metadanych profilera powodują SECURITY_E_INCOMPATIBLE_SHARE błąd.

Profiler używa obiektu ICorProfilerAssemblyReferenceProvider dostarczonego przez tę metodę, aby dodać odwołania do zestawu do przewodnika zamknięcia odwołania do zestawu CLR. Obiekt ICorProfilerAssemblyReferenceProvider powinien być używany tylko z poziomu tego wywołania zwrotnego. Wywołania metody ICorProfilerAssemblyReferenceProvider::AddAssemblyReference z tego wywołania zwrotnego nie powodują modyfikacji metadanych, ale tylko w zmodyfikowanym przewodniku zamknięcia odwołania do zestawu. Profiler nadal będzie musiał użyć obiektu IMetaDataAssemblyEmit w celu jawnego dodania odwołań do zestawu z poziomu elementu ICorProfilerCallback::ModuleLoadFinished wywołania zwrotnego dla zestawu odwołującego się, nawet jeśli implementuje GetAssemblyReferences wywołanie zwrotne.

Profiler powinien być przygotowany do odbierania zduplikowanych wywołań do tego wywołania zwrotnego dla tego samego zestawu i powinien odpowiadać identycznie dla każdego takiego zduplikowanego wywołania (przez wykonanie tego samego zestawu wywołań ICorProfilerAssemblyReferenceProvider::AddAssemblyReference ).

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorProf.idl, CorProf.h

Biblioteki: CorGuids.lib

.NET Framework wersje: dostępne od wersji 4.5.2

Zobacz też