語言

MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) 方法

定義

回傳來自特定組裝名稱的組裝。

public:
 abstract System::Reflection::Assembly ^ Resolve(System::Reflection::MetadataLoadContext ^ context, System::Reflection::AssemblyName ^ assemblyName);
public abstract System.Reflection.Assembly? Resolve(System.Reflection.MetadataLoadContext context, System.Reflection.AssemblyName assemblyName);
abstract member Resolve : System.Reflection.MetadataLoadContext * System.Reflection.AssemblyName -> System.Reflection.Assembly
Public MustOverride Function Resolve (context As MetadataLoadContext, assemblyName As AssemblyName) As Assembly

參數

context
MetadataLoadContext

元資料載入上下文物件代表僅用於檢查目的的封閉物件宇宙 Type 。

assemblyName
AssemblyName

組件的名稱。

傳回

所提供的 assemblyName集合 。

備註

當 被呼叫或一個裝配的型別相依於另一個裝配時,會將 LoadFromAssemblyName 組裝名稱綁定到組裝。 覆蓋的 Resolve 處理器應該使用 MetadataLoadContext.LoadFromStream, MetadataLoadContext.LoadFromAssemblyPath 或 MetadataLoadContext.LoadFromByteArray 載入請求的組裝並回傳。

若要表示找不到組裝,處理器應返回 null 而非拋出例外。 回傳 null 會提交失敗,因此未來載入該名稱的嘗試會失敗,且不會重新呼叫處理器。

如果處理器拋出異常,該例外會傳遞給觸發綁定操作的應用程式。 他們 MetadataLoadContext 不會接住它,也不會發生束縛。

處理者通常不會因同名被呼叫超過一次,除非兩條執行緒競速載入同一個組件。 即使如此,最終也會有一個結果獲勝,並被原子綁定於名稱。

它 MetadataLoadContext 故意不對回傳的assembly執行 ref-def 匹配,因為 ref-def 匹配的定義是政策。 這也是我們努力避免的那種任意限制 MetadataLoadContext 。

無法 MetadataLoadContext 從其他元資料載入上下文或其他類型提供者(例如底層執行時自身的反射系統)中取得組件。 若處理器回傳此類組裝,則 MetadataLoadContext 拋 FileLoadException出 。

適用於