Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Unterstützt in .NET Framework 4.5.2 und höheren Versionen]
Benachrichtigt den Profiler, dass sich eine Assembly in einer sehr frühen Ladephase befindet, wenn die Common Language Runtime eine Schließung des Assemblyverweises ausführt.
Syntax
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parameters
wszAssemblyPath
[in] Der Pfad und der Name der Assembly, deren Metadaten geändert werden.
pAsmRefProvider
[in] Ein Zeiger auf die Adresse einer ICorProfilerAssemblyReferenceProvider-Schnittstelle , die die hinzuzufügenden Assemblyverweise angibt.
Return Value
Rückgabewerte aus diesem Rückruf werden ignoriert.
Remarks
Dieser Rückruf wird durch Festlegen des COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES Ereignisformatflags beim Aufrufen der ICorProfilerCallback5::SetEventMask2-Methode gesteuert. Wenn der Profiler für die ICorProfilerCallback6::GetAssemblyReferences-Rückrufmethode registriert wird, übergibt die Laufzeit den Pfad und den Namen der assembly, die geladen werden soll, zusammen mit einem Zeiger auf ein ICorProfilerAssemblyReferenceProvider-Schnittstellenobjekt an diese Methode. Der Profiler kann dann die ICorProfilerAssemblyReferenceProvider::AddAssemblyReference-Methode mit einem COR_PRF_ASSEMBLY_REFERENCE_INFO
Objekt für jede Zielassembly aufrufen, auf die GetAssemblyReferences
von der im Rückruf angegebenen Assembly verwiesen werden soll.
Verwenden Sie den GetAssemblyReferences
Rückruf nur, wenn der Profiler die Metadaten einer Assembly ändern muss, um Assemblyverweise hinzuzufügen. (Beachten Sie jedoch, dass die tatsächliche Änderung der Metadaten einer Assembly in der ICorProfilerCallback::ModuleLoadFinished-Rückrufmethodeerfolgt.) Der Profiler sollte die GetAssemblyReferences
Rückrufmethode implementieren, um die Common Language Runtime (CLR) darüber zu informieren, dass Assemblyverweise hinzugefügt werden, wenn das Modul geladen wurde. Dadurch wird sichergestellt, dass die entscheidungen der Assemblyfreigabe, die von der CLR in dieser frühen Phase getroffen wurden, gültig bleiben, obwohl der Profiler die Metadatenassemblyverweise später ändern möchte. Dies kann einige Instanzen vermeiden, in denen Profilermetadatenänderungen einen SECURITY_E_INCOMPATIBLE_SHARE
Fehler verursachen.
Der Profiler verwendet das von dieser Methode bereitgestellte ICorProfilerAssemblyReferenceProvider-Objekt , um Assemblyverweise zum CLR-Assemblyverschließer hinzuzufügen. Das ICorProfilerAssemblyReferenceProvider-Objekt sollte nur innerhalb dieses Rückrufs verwendet werden. Aufrufe an die ICorProfilerAssemblyReferenceProvider::AddAssemblyReference-Methode aus diesem Rückruf führen nicht zu geänderten Metadaten, sondern nur in einer geänderten Assemblyverweis-Schließungsexemplar. Der Profiler muss weiterhin ein IMetaDataAssemblyEmit-Objekt verwenden, um explizit Assemblyverweise aus dem ICorProfilerCallback::ModuleLoadFinished-Rückruf für die referenzierende Assembly hinzuzufügen, auch wenn er den GetAssemblyReferences
Rückruf implementiert.
Der Profiler sollte darauf vorbereitet sein, doppelte Aufrufe an diesen Rückruf für dieselbe Assembly zu empfangen, und sollte für jeden solchen doppelten Aufruf identisch reagieren (indem er dieselbe Gruppe von ICorProfilerAssemblyReferenceProvider::AddAssemblyReference-Aufrufe vornimmt).
Requirements
Plattformen: Informationen finden Sie unter Systemanforderungen.
Kopfball: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework-Versionen: Verfügbar seit 4.5.2