Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las bibliotecas no administradas se ubican y se cargan con un algoritmo que implica varias fases.
El algoritmo siguiente describe cómo se cargan las bibliotecas nativas a través de PInvoke
.
Algoritmo de la biblioteca de carga PInvoke
PInvoke
usa el algoritmo siguiente al intentar cargar un ensamblado no administrado:
Determine el elemento
active
AssemblyLoadContext. En el caso de una biblioteca de carga no administrada, el elemento AssemblyLoadContext deactive
es el que tiene el ensamblado que definePInvoke
.En el caso del elemento
active
AssemblyLoadContext, intente buscar el ensamblado en orden de prioridad por:Comprobar la memoria caché.
Llamar al delegado System.Runtime.InteropServices.DllImportResolver actual que establece la función NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver).
Llamar a la función AssemblyLoadContext.LoadUnmanagedDll en el elemento AssemblyLoadContext de
active
.Comprobar la memoria caché de la instancia de AppDomain y ejecutar la lógica de sondeo de biblioteca no administrada (nativa).
Generar el evento AssemblyLoadContext.ResolvingUnmanagedDll para el elemento AssemblyLoadContext de
active
.