Проблема: загрузка плагинов в консольное приложение (в конце концов, служба Windows) и запуск кода в плагине
Исследования: документы StructureMap (конечно) Несколько потоков stackoverflow, один из которых самый близкий. Создание сканера плагинов с StructureMap
У меня есть 3 проекта: Консольное приложение (Драйвер) 2 Библиотеки классов
Консольное приложение
static void Main(string[] args)
{
ObjectFactory.Initialize(cfg => cfg.Scan(scanner =>
{
scanner.AssembliesFromPath(@"PATH TO PLUGIN DIR");
scanner.AddAllTypesOf<IPlugable>();
}));
var list = ObjectFactory.GetAllInstances<IPlugable>();
foreach (var plug in list)
{
plug.Run();
}
}
public interface IPlugable
{
void Run();
}
Плагин_2
public interface IPlugable
{
void Run();
}
public class PlugIn2 : IPlugable
{
public void Run()
{
Console.WriteLine(this.GetType().Name + "fired!");
}
}
public interface IPlugable
{
void Run();
}
public class PlugIn1 : IPlugable
{
public void Run()
{
Console.WriteLine(this.GetType().Name + "fired!");
}
}
Вывод:
ObjectFactory.GetAllInstances<IPlugable>();
не возвращает объектов :( Желаемый вывод: 2 экземпляра объекта Plugin_1 & Plugin_2
Заранее спасибо.