Stiamo usando il modello di eventi dominio e appoggiandosi sul nostro contenitore CIO di localizzare i gestori per un particolare tipo di evento:Come eseguire la scansione di tutte le implementazioni di un tipo generico con Ninject
public interface IHandleEvent<TEvent> where TEvent : IEvent
{
void Handle(TEvent evnt);
}
Con StructureMap possiamo eseguire la scansione e registrare tutti i tipi che implementano la suddetta interfaccia in questo modo:
Scan(cfg =>
{
cfg.TheCallingAssembly();
cfg.ConnectImplementationsToTypesClosing(typeof(IHandleEvent<>));
});
Esiste un equivalente con Ninject?
Attualmente sto avendo per legare ogni gestore singolarmente in questo modo:
kernel.Bind<IHandleEvent<SomeEvent>>().To<EventHandler1>();
kernel.Bind<IHandleEvent<SomeEvent>>().To<EventHandler2>();
kernel.Bind<IHandleEvent<SomeOtherEvent>>().To<EventHandler3>();