mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 16:26:30 +00:00
rework to Azaion.Suite
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Loader;
|
||||
using Azaion.Suite.Services.DTO;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Azaion.Suite;
|
||||
|
||||
public class DynamicAssemblyLoader(IOptions<LocalFilesConfig> localFilesConfig) : AssemblyLoadContext
|
||||
{
|
||||
private static readonly Dictionary<string?, Assembly> LoadedAssemblies = new();
|
||||
|
||||
static DynamicAssemblyLoader()
|
||||
{
|
||||
LoadedAssemblies = Default.Assemblies.ToDictionary(a => a.GetName().Name, a => a);
|
||||
}
|
||||
|
||||
protected override Assembly Load(AssemblyName assemblyName)
|
||||
{
|
||||
var assembly = LoadedAssemblies.GetValueOrDefault(assemblyName.Name);
|
||||
if (assembly != null)
|
||||
return assembly;
|
||||
|
||||
var currentLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
|
||||
|
||||
var asm = Assembly.LoadFile(Path.Combine(currentLocation, localFilesConfig.Value.DllPath, $"{assemblyName.Name!}.dll"));
|
||||
return asm;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user