3 using System.Reflection;
4 using System.Runtime.Loader;
5 using System.Collections.Generic;
7 namespace Tizen.Runtime
9 public class AssemblyLoader : AssemblyLoadContext
11 private SortedSet<string> _dllDirectories = new SortedSet<string>();
12 public IEnumerable<string> DllDirectories
14 get { return _dllDirectories; }
17 public void AddSearchableDirectory(string directory)
19 if (Directory.Exists(directory))
21 _dllDirectories.Add(directory);
25 public void RemoveSearchableDirectory(string directory)
27 _dllDirectories.Remove(directory);
30 protected override Assembly Load(AssemblyName assemblyName)
32 ALog.Debug($"Load!! : {assemblyName.Name}");
33 foreach (string dir in DllDirectories)
35 FileInfo f = new FileInfo(Path.Combine(dir, $"{assemblyName.Name}.dll"));
36 ALog.Debug(f.FullName);
37 if (File.Exists(f.FullName))
39 return LoadFromAssemblyPath(f.FullName);
42 return Assembly.Load(assemblyName);