使用StructureMap创建插件扫描程序

时间:2011-03-14 13:53:54

标签: structuremap

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

这是我的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实现,但它不包含任何内容。我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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