Метод ICorProfilerCallback6::GetAssemblyReferences

[Поддерживается в .NET Framework 4.5.2 и более поздних версиях.]

Уведомляет профилировщика о том, что сборка находится на очень ранней стадии загрузки, когда среда CLR выполняет обход замыкания ссылки на сборку.

Синтаксис

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

Параметры

wszAssemblyPath
[в] Путь и имя сборки, метаданные которой будут изменены.

pAsmRefProvider
[in] Указатель на адрес интерфейса ICorProfilerAssemblyReferenceProvider, указывающий добавляемые ссылки на сборки.

Возвращаемое значение

Значения, возвращаемые из этого обратного вызова, игнорируются.

Комментарии

Для управления этим обратным вызовом устанавливается флаг маски события COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES при вызове метода ICorProfilerCallback5::SetEventMask2 . Если профилировщик регистрирует метод обратного вызова ICorProfilerCallback6::GetAssemblyReferences , среда выполнения передает путь и имя загружаемой сборки вместе с указателем на объект интерфейса ICorProfilerAssemblyReferenceProvider на этот метод. Затем профилировщик может вызвать метод ICorProfilerAssemblyReferenceProvider::AddAssemblyReference с объектом для каждой COR_PRF_ASSEMBLY_REFERENCE_INFO целевой сборки, на которые он планирует ссылаться из сборки, указанной в обратном вызове GetAssemblyReferences .

Используйте обратный вызов GetAssemblyReferences, только если для добавления ссылок на сборку профилировщик должен изменить метаданные сборки. (Но обратите внимание, что фактическое изменение метаданных сборки выполняется в методе обратного вызова ICorProfilerCallback::ModuleLoadFinished.) Профилировщик должен реализовать метод обратного GetAssemblyReferences вызова, чтобы сообщить среде CLR о том, что ссылки на сборки будут добавлены при загрузке модуля. Это гарантирует, что решения о предоставлении общего доступа к сборке, сделанные средой CLR во время этой ранней стадии, остаются в силе, хотя позже профилировщик планирует изменить ссылки на сборку метаданных. Это поможет избежать некоторых случаев, при которых модификации метаданных профилировщика приводят к ошибке SECURITY_E_INCOMPATIBLE_SHARE.

Профилировщик использует объект ICorProfilerAssemblyReferenceProvider, предоставленный этим методом, для добавления ссылок на сборки в пошаговое руководство по закрытию ссылок на сборку CLR. Объект ICorProfilerAssemblyReferenceProvider следует использовать только из этого обратного вызова. Вызовы метода ICorProfilerAssemblyReferenceProvider::AddAssemblyReference из этого обратного вызова не приводят к изменению метаданных, а только к измененной ссылке на сборку. Профилировщику по-прежнему придется использовать объект IMetaDataAssemblyEmit для явного добавления ссылок на сборку из обратного вызова ICorProfilerCallback::ModuleLoadFinished для ссылающейся сборки, даже если он реализует обратный GetAssemblyReferences вызов.

Профилировщик должен быть подготовлен к получению повторяющихся вызовов этого обратного вызова для одной сборки и должен отвечать одинаково для каждого такого повторяющегося вызова (путем создания одного набора вызовов ICorProfilerAssemblyReferenceProvider::AddAssemblyReference ).

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorProf.idl, CorProf.h

Библиотека: CorGuids.lib

платформа .NET Framework версии: доступно с версии 4.5.2.

См. также раздел