File: src\Microsoft.DotNet.Wpf\tests\UnitTests\Shared\ModuleInitializer.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\tests\UnitTests\System.Xaml.Tests\System.Xaml.Tests.csproj (System.Xaml.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Loader;
 
internal static class ModuleInitializer
{
    /// <summary>
    /// Module initializer used as a workaround for https://github.com/dotnet/runtime/issues/111825.
    /// </summary>
#pragma warning disable CA2255
    [ModuleInitializer]
#pragma warning restore CA2255
    public static void Initialize()
    {
        // When a native dll fails to resolve, try loading it from the directory of the assembly loading the dll.
        AssemblyLoadContext.Default.ResolvingUnmanagedDll += static (assembly, name) =>
        {
            return NativeLibrary.TryLoad(name, assembly, DllImportSearchPath.AssemblyDirectory, out nint handle) ? handle : 0;
        };
    }
}