【发布时间】:2011-08-22 16:38:18
【问题描述】:
问题: 将插件加载到控制台应用程序(最终是 Windows 服务)并在插件 dll 中运行代码
研究: StructureMap 文档(当然) 一些stackoverflow线程这是最接近的。 Creating plugin scanner with 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>();
不返回任何对象 :( 期望的输出: Plugin_1 & Plugin_2 的 2 个对象实例
提前致谢。
【问题讨论】:
-
显示 ObjectFactory.WhatDoIHave() 的输出
标签: c# ioc-container structuremap