Pregunta

Por lo tanto, tengo una solución que utiliza .NET StructureMap, y me gustaría tener StructureMap leer un montaje exterior que implementa una interfaz de un proyecto en el que la solución y define la entrada de registro para ello.

configuración StructreMap para mi solución:

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();
   });
});

Bastante sencillo, lo cuento a agregar el ensamblado que llama y el montaje de un directorio a la colección asambleas. He depurado los conjuntos de variables y se ha encontrado de hecho todos los conjuntos (incluyendo la del directorio de extensiones).

En un proyecto DLL He creado separada de mi solución original, tengo una implementación de una interfaz (he referido al proyecto de interfaces de mi solución original), y escrito un registro muy simple:

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

El problema que tengo es, StructureMap no encuentra el registro en el archivo DLL externa. Se encuentra el archivo DLL muy bien, pero cuando se lo cuento a LookForRegistries, que no lo encuentra.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top