2011-05-10 12 views
5

Problema del Plugin DLL: Cargando plugins en una aplicación de consola (servicio de Windows Con el tiempo) y el código que se ejecuta en el enchufe de DLLStructureMap Carga dinámica de

Investigación: StructureMap Docs (por supuesto) Unos hilos stackoverflow este uno siendo el más cercano. Creating plugin scanner with StructureMap

tengo 3 proyectos: aplicación de consola (Driver) 2 Las bibliotecas de clases

consola App

static void Main(string[] args) 
{ 
    ObjectFactory.Initialize(cfg => cfg.Scan(scanner => 
    { 
     scanner.AssembliesFromPath(@"PATH TO PLUGIN DIR"); 
     scanner.AddAllTypesOf<IPlugable>(); 
    })); 

    var list = ObjectFactory.GetAllInstances<IPlugable>(); 

    foreach (var plug in list) 
    { 
     plug.Run(); 
    } 
} 

public interface IPlugable 
{ 
    void Run(); 
} 

Plugin_2

public interface IPlugable 
{  
    void Run(); 
} 

public class PlugIn2 : IPlugable 
{  
    public void Run() 
    { 
     Console.WriteLine(this.GetType().Name + "fired!"); 
    } 
} 

public interface IPlugable 
{  
    void Run(); 
} 

public class PlugIn1 : IPlugable 
{   
    public void Run() 
    { 
     Console.WriteLine(this.GetType().Name + "fired!"); 
    } 
} 

La salida:

ObjectFactory.GetAllInstances<IPlugable>(); 

no devolvió objetos :( salida deseada: 2 instancias de objetos de Plugin_1 & Plugin_2

Gracias de antemano.

+0

muestran la salida de ObjectFactory.WhatDoIHave() –

Respuesta

2

Parece que está utilizando 3 interfaces diferentes. Todos son llamados "IPlugable", pero residen en diferentes espacios de nombres, por lo tanto, no son lo mismo.

Cuestiones relacionadas