Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Неуправляемые библиотеки обнаруживаются и загружаются по специальному алгоритму, который состоит из нескольких этапов.
Алгоритм ниже описывает процесс загрузки нативных библиотек через PInvoke.
Алгоритм PInvoke для загрузки библиотек
PInvoke использует следующий алгоритм при попытке загрузить неуправляемую сборку.
Определите
activeAssemblyLoadContext. Для неуправляемой библиотекиactiveAssemblyLoadContext является той, которая содержит сборку, определяющуюPInvoke.Для
activeAssemblyLoadContext попытайтесь найти сборку в порядке приоритета:Проверка кэша.
Вызывается текущий делегат System.Runtime.InteropServices.DllImportResolver, заданный функцией NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver).
Вызывается функция AssemblyLoadContext.LoadUnmanagedDll в
activeAssemblyLoadContext.Проверяется кэш экземпляра AppDomain и выполняется логика зондирования неуправляемой (нативной) библиотеки.
Генерация события AssemblyLoadContext.ResolvingUnmanagedDll для AssemblyLoadContext
active.