rework to Azaion.Suite

This commit is contained in:
Alex Bezdieniezhnykh
2024-11-21 13:41:32 +02:00
parent 2cf69f4e4e
commit 5a592e9dbf
76 changed files with 1739 additions and 882 deletions
+29
View File
@@ -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;
}
}