2011-03-14 70 views
2

我正在尝试为Payment Gateway实现编写一个StructureMap插件扫描器。我在外部库中创建了IPaymentGateway接口。我创建了几个IPaymentGateway的实现,并将这些.dlls放在我的C:\ Extensions \文件夹中。使用StructureMap创建插件扫描器

这里是我的StructureMap配置:

  ObjectFactory.Initialize(cfg => 
     { 
      cfg.Scan(scanner => 
      { 
       scanner.AssembliesFromPath(@"C:\Extensions\"); 
      }); 
     }); 

这里是我的调用代码:

var list = ObjectFactory.GetAllInstances<IPaymentGateway>().ToList(); 
list.ForEach(item => Console.WriteLine(item.FriendlyName)); 

我希望该列表应包含每个我IPaymentGateway的实现,但它不包含任何东西我错过了什么?

谢谢!

回答

2

您需要使用扫描仪来添加类型:

ObjectFactory.Initialize(cfg => { 
    cfg.Scan(scanner => 
    { 
     scanner.AssembliesFromPath(@"C:\Extensions\"); 
     scanner.AddAllTypesOf<IPaymentGateway>(); 
    }); 
+1

奇怪的,我发誓,我这样做之前,并没有发挥作用。现在它可以工作。必须是那些补给gremlins再次。 – 2011-03-14 15:26:57