2

I use this article and created multiply class libraries in project. I wanted to load all the modules in a Kernel.

for load all modules, I use this code in MainViewModel

public MainViewModel()
{
    IKernel kernel = new StandardKernel();
    kernel.Load(AppDomain.CurrentDomain.GetAssemblies());
    Plugins = kernel.GetAll<PluginBase>().ToList();
}

But don't load Modules(plugin) in AppDomain.CurrentDomain.GetAssemblies()

mipe34
  • 5,596
  • 3
  • 26
  • 38
ar.gorgin
  • 4,765
  • 12
  • 61
  • 100

1 Answers1

2

I use this code for load assemblies.I found it there.

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
var loadedPaths = loadedAssemblies.Select(a => a.Location).ToArray();

var referencedPaths = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll");
var toLoad = referencedPaths.Where(r => !loadedPaths.Contains(r, StringComparer.InvariantCultureIgnoreCase)).ToList();
toLoad.ForEach(path => loadedAssemblies.Add(AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(path))));
Community
  • 1
  • 1
ar.gorgin
  • 4,765
  • 12
  • 61
  • 100