2009-02-03 5 views
7

Итак, у меня есть .NET-решение, которое использует StructureMap, и я хотел бы, чтобы StructureMap читал внешнюю сборку, которая реализует интерфейс из проекта в этом решении и определяет запись реестра для этого.StructureMap и сборки сканирования

конфигурация StructreMap для моего решения:

ObjectFactory.Initialize(registry => 
{ 
    registry.Scan(assembly => 
    { 
    assembly.TheCallingAssembly(); 

    //Telling StructureMap to sweep a folder called "extensions" directly 
    //underneath the application root folder for any assemblies found in that folder 
    assembly.AssembliesFromPath("extensions", addedAssembly => addedAssembly.GetName().Name.ToLower().Contains("extension")); 

    //Direct StructureMap to add any Registries that it finds in these assemblies, assuming that all the StructureMap directives are 
    //contained in registry classes 
    assembly.LookForRegistries(); 
    }); 
}); 

Довольно просто, я говорю это, чтобы добавить сборку вызова и сборку из каталога в коллекцию сборок. Я отлаживал переменную сборки, и она действительно нашла все сборки (в том числе одну из каталога расширений).

В DLL проекта я создал отдельный от моего первоначального решения, у меня есть реализация интерфейса (я ссылаться на проект интерфейсов от моего первоначального решения), и написал очень простой реестр:

public class ProductMockRegistry : Registry 
{ 
    public ProductMockRegistry() 
    { 
     ForRequestedType<IProductRepository>().AddInstances(repository => 
     { 
      repository.OfConcreteType<ProductMockRepository>(); 
     }); 
    } 
} 

Проблема, которая у меня есть, StructureMap не находит реестр во внешней DLL. Он находит DLL просто прекрасным, но когда я говорю об этом LookForRegistries, он не находит его.

ответ