我正在尝试为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实现,但它不包含任何内容。我错过了什么?
谢谢!
答案 0 :(得分:2)
您需要使用扫描仪添加类型:
ObjectFactory.Initialize(cfg => {
cfg.Scan(scanner =>
{
scanner.AssembliesFromPath(@"C:\Extensions\");
scanner.AddAllTypesOf<IPaymentGateway>();
});