Algoritma pemuatan pustaka tidak terkelola (asli)
Pustaka yang tidak dikelola terletak dan dimuat dengan algoritma yang melibatkan berbagai tahapan.
Algoritma berikut menjelaskan bagaimana pustaka asli dimuat melalui PInvoke
.
PInvoke
algoritma pustaka beban
PInvoke
menggunakan algoritma berikut saat mencoba memuat rakitan yang tidak dikelola:
Tentukan
active
AssemblyLoadContext. Untuk pustaka beban yang tidak dikelola,active
AssemblyLoadContext adalah pustaka dengan rakitan yang mendefinisikanPInvoke
.active
AssemblyLoadContextUntuk , cobalah untuk menemukan rakitan dalam urutan prioritas dengan:Memeriksa cache-nya.
Memanggil delegasi saat ini System.Runtime.InteropServices.DllImportResolver yang NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver) ditetapkan oleh fungsi .
Memanggil AssemblyLoadContext.LoadUnmanagedDll fungsi pada
active
AssemblyLoadContext.Memeriksa AppDomain cache instans dan menjalankan logika pemeriksaan pustaka Tidak Terkelola (asli).
Menaikkan AssemblyLoadContext.ResolvingUnmanagedDll peristiwa untuk
active
AssemblyLoadContext.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk