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 carga de la librería PInvoke
PInvoke usa el algoritmo siguiente al intentar cargar un ensamblado no administrado:
Determine el elemento
activeAssemblyLoadContext. En el caso de una biblioteca de carga no administrada, el elemento AssemblyLoadContext deactivees el que tiene el ensamblado que definePInvoke.En el caso del elemento
activeAssemblyLoadContext, intente buscar el ensamblado en orden de prioridad por:Verificar su memoria caché.
Llamar al delegado actual System.Runtime.InteropServices.DllImportResolver establecido por la función NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver).
Llamar a la función AssemblyLoadContext.LoadUnmanagedDll en
activeAssemblyLoadContext.Revisar la memoria caché de la instancia AppDomain y ejecutar la lógica de detección de la biblioteca nativa (no administrada).
Generar el evento AssemblyLoadContext.ResolvingUnmanagedDll para el elemento AssemblyLoadContext de
active.