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