[在 .NET Framework 4.5.2 和更新版本中支援]
當 Common Language Runtime 執行元件參考關閉逐步解說時,通知分析工具元件處於非常早期的載入階段。
Syntax
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parameters
wszAssemblyPath [in]將修改其元數據的元件路徑和名稱。
pAsmRefProvider [in] ICorProfilerAssemblyReferenceProvider 介面位址的指標,指定要加入的元件參考。
Return Value
會忽略這個回呼的傳回值。
Remarks
呼叫 ICorProfilerCallback5::SetEventMask2 方法時,會設定COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES事件遮罩旗標來控制此回呼。 如果分析工具註冊 ICorProfilerCallback6::GetAssemblyReferences 回呼方法,運行時間會將要載入之元件的路徑和名稱,以及 ICorProfilerAssemblyReferenceProvider 介面物件的指標傳遞給該方法。 然後,分析工具可以使用它計劃從回呼中指定的GetAssemblyReferences元件參考的每個目標元件,呼叫 COR_PRF_ASSEMBLY_REFERENCE_INFOICorProfilerAssemblyReferenceProviderenceProvider::AddAssemblyReference 方法。
只有在分析工具必須修改元件的元數據以新增元件參考時,才使用回 GetAssemblyReferences 呼。 (但請注意,元件元數據的實際修改是在 ICorProfilerCallback::ModuleLoadFinished回呼方法中完成的。分析工具應該實 GetAssemblyReferences 作回呼方法,以通知 Common Language Runtime (CLR) 載入模組時,將會新增元件參考。 這有助於確保CLR在這個初期階段進行的元件共享決策仍然有效,不過分析工具計劃稍後修改元數據元件參考。 這可以避免一些分析工具元數據修改造成 SECURITY_E_INCOMPATIBLE_SHARE 錯誤的實例。
分析工具會使用這個方法所提供的 ICorProfilerAssemblyReferenceProvider 物件,將元件參考新增至 CLR 元件參考關閉逐步解說工具。
ICorProfilerAssemblyReferenceProvider 物件只能從這個回呼內使用。 從這個回呼呼叫 ICorProfilerAssemblyReferenceProvider::AddAssemblyReference 方法不會產生修改的元數據,但只會在修改過的元件參考關閉逐步解說中。 分析工具仍然需要使用 IMetaDataAssemblyEmit 物件,從 ICorProfilerCallback::ModuleLoadFinished 回呼中明確新增元件參考,即使它實作 GetAssemblyReferences 回呼也一樣。
分析工具應該準備好接收相同元件的這個回呼重複呼叫,而且應該針對每個這類重複呼叫相同回應(藉由進行相同的 ICorProfilerAssemblyReferenceProvider::AddAssemblyReference 呼叫)。
Requirements
平台:請參閱系統需求。
頁眉: CorProf.idl、CorProf.h
Library: CorGuids.lib
.NET Framework 版本: 自 4.5.2 起可用