Bagikan melalui


MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Metode

Definisi

Mengembalikan rakitan dari nama rakitan tertentu.

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

Parameter

context
MetadataLoadContext

Objek konteks beban metadata yang mewakili alam semesta Type tertutup objek yang dimuat untuk tujuan khusus inspeksi.

assemblyName
AssemblyName

Nama assembly.

Mengembalikan

Perakitan untuk yang disediakan assemblyName.

Keterangan

Mengikat nama rakitan ke rakitan terjadi ketika LoadFromAssemblyName dipanggil atau ketika jenis dari satu rakitan memiliki dependensi pada rakitan lain. Handler yang mengambil Resolve alih harus menggunakan MetadataLoadContext.LoadFromStream, MetadataLoadContext.LoadFromAssemblyPath atau MetadataLoadContext.LoadFromByteArray untuk memuat rakitan yang diminta dan mengembalikannya.

Untuk menunjukkan kegagalan untuk menemukan assembly, handler harus kembali null daripada melemparkan pengecualian. Mengembalikan null penerapan kegagalan sehingga upaya di masa mendatang untuk memuat nama tersebut akan gagal tanpa memanggil kembali handler.

Jika handler melempar pengecualian, pengecualian akan diteruskan ke aplikasi yang memanggil operasi yang memicu pengikatan. MetadataLoadContext Tidak akan menangkapnya, dan tidak ada pengikatan yang akan terjadi.

Handler umumnya tidak akan dipanggil lebih dari sekali untuk nama yang sama, kecuali dua utas berlomba untuk memuat rakitan yang sama. Bahkan dalam hal ini, satu hasil akan menang dan secara atomik terikat dengan nama.

Dengan MetadataLoadContext sengaja tidak melakukan pencocokan ref-def pada rakitan yang dikembalikan sebagai apa yang merupakan kecocokan ref-def adalah kebijakan. Ini juga merupakan jenis pembatasan arbitrer yang MetadataLoadContext berusaha untuk menghindarinya.

MetadataLoadContext tidak dapat menggunakan rakitan dari konteks beban metadata lain atau penyedia jenis lainnya (seperti sistem refleksi runtime bahasa umum yang mendasarinya sendiri). Jika handler mengembalikan rakitan seperti itu, akan MetadataLoadContext melempar FileLoadException.

Berlaku untuk