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

22 lines
707 B
C#

using System;
using System.Reflection;
using Prise.Utils;
namespace Prise.AssemblyScanning
{
public class DefaultMetadataLoadContext : IMetadataLoadContext
{
private readonly MetadataLoadContext loadContext;
public DefaultMetadataLoadContext(string fullPathToAssembly)
{
this.loadContext = new MetadataLoadContext(new DefaultAssemblyResolver(fullPathToAssembly.ThrowIfNullOrEmpty(nameof(fullPathToAssembly))));
}
public IAssemblyShim LoadFromAssemblyName(string assemblyName) => new PriseAssembly(loadContext.LoadFromAssemblyName(assemblyName));
public void Dispose()
{
this.loadContext?.Dispose();
}
}
}