共用方式為


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.LoadFromStreamMetadataLoadContext.LoadFromAssemblyPathMetadataLoadContext.LoadFromByteArray 載入要求的元件並傳回它。

若要指出找不到元件失敗,處理程式應該會傳回 ,而不是擲回 null 例外狀況。 傳 null 回會認可失敗,以便未來嘗試載入該名稱將會失敗,而不會重新叫用處理程式。

如果處理程式擲回例外狀況,則會將例外狀況傳遞至叫用觸發系結之作業的應用程式。 MetadataLoadContext不會攔截它,也不會發生任何系結。

除非兩個線程競爭載入相同的元件,否則處理程式通常不會針對相同名稱呼叫一次以上。 即使在這種情況中,一個結果仍會獲勝,並以不可部分完成的方式系結至名稱。

MetadataLoadContext 刻意在傳回的元件上執行 ref-def 比對,因為構成 ref-def 比對的內容是原則。 這也是想要避免的任意限制 MetadataLoadContext 類型。

MetadataLoadContext無法從其他元數據載入內容或其他類型提供者取用元件 (,例如基礎運行時間本身的反映系統) 。 如果處理程式傳回這類元件,則會 MetadataLoadContext 擲回 FileLoadException

適用於