2011-03-17 6 views

Respuesta

10

Puede intentar Ninject.Extensions.Conventions:

var kernel = new StandardKernel(); 
kernel.Bind(c => 
      c.FromThisAssembly() 
       .SelectAllClasses().InheritedFrom<IFoo>() 
       .BindAllInterfaces()); 

// and later: 

kernel.GetAll<IFoo>().ToList().ForEach(foo => foo.DoSmth()); 

clases necesarias están a continuación:

public interface IFoo 
{ 
    void DoSmth(); 
} 

public class Foo1 : IFoo 
{ 
    public void DoSmth() 
    { 
     Console.Out.WriteLine("Foo1"); 
    } 
} 

public class Foo2 : IFoo 
{ 
    public void DoSmth() 
    { 
     Console.Out.WriteLine("Foo2"); 
    } 
} 
Cuestiones relacionadas