MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.