pschelpdesk/Vendor/Prise/AssemblyLoading/DefaultNativeAssemblyUnloader.cs
2024-11-04 20:45:34 +01:00

25 lines
679 B
C#

using System;
using System.Runtime.InteropServices;
namespace Prise.AssemblyLoading
{
#if !SUPPORTS_NATIVE_UNLOADING
internal static class NativeAssemblyUnloader
{
[DllImport("kernel32", SetLastError = true)]
internal static extern bool FreeLibrary(IntPtr hModule);
}
#endif
public class DefaultNativeAssemblyUnloader : INativeAssemblyUnloader
{
public void UnloadNativeAssembly(string fullPathToLoadedNativeAssembly, IntPtr pointerToAssembly)
{
#if !SUPPORTS_NATIVE_UNLOADING
NativeAssemblyUnloader.FreeLibrary(pointerToAssembly);
#else
NativeLibrary.Free(pointerToAssembly);
#endif
}
}
}