Algorytm ładowania niezarządzanej biblioteki (natywnej)
Biblioteki niezarządzane znajdują się i są ładowane z algorytmem obejmującym różne etapy.
Poniższy algorytm opisuje sposób ładowania bibliotek natywnych za pomocą metody PInvoke
.
PInvoke
ładowanie algorytmu biblioteki
PInvoke
używa następującego algorytmu podczas próby załadowania niezarządzanego zestawu:
Ustal element
active
AssemblyLoadContext. W przypadku niezarządzanej biblioteki ładowania elementactive
AssemblyLoadContext jest jednym z zestawem definiującymPInvoke
element .W przypadku elementu
active
AssemblyLoadContextspróbuj znaleźć zestaw w kolejności priorytetu przez:Sprawdzanie jego pamięci podręcznej.
Wywoływanie bieżącego System.Runtime.InteropServices.DllImportResolver delegata ustawionego NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver) przez funkcję.
Wywoływanie AssemblyLoadContext.LoadUnmanagedDll funkcji w obiekcie
active
AssemblyLoadContext.AppDomain Sprawdzanie pamięci podręcznej wystąpienia i uruchamianie logiki sondowania niezarządzanej (natywnej).
AssemblyLoadContext.ResolvingUnmanagedDll Podniesienie zdarzenia dla
active
elementu AssemblyLoadContext.