Używamy wzór wydarzeń domen i przechyla się na naszą kontenera IoC zlokalizować teleskopowe dla danego rodzaju imprezy:Jak skanować do wszystkich wdrożeń typu rodzajowego z Ninject
public interface IHandleEvent<TEvent> where TEvent : IEvent
{
void Handle(TEvent evnt);
}
Z StructureMap możemy skanować i zarejestruj wszystkie typy implementujące powyższy interfejs, tak:
Scan(cfg =>
{
cfg.TheCallingAssembly();
cfg.ConnectImplementationsToTypesClosing(typeof(IHandleEvent<>));
});
Czy istnieje odpowiednik dla Ninject?
Obecnie mam powiązać poszczególne procedury obsługi indywidualnie tak:
kernel.Bind<IHandleEvent<SomeEvent>>().To<EventHandler1>();
kernel.Bind<IHandleEvent<SomeEvent>>().To<EventHandler2>();
kernel.Bind<IHandleEvent<SomeOtherEvent>>().To<EventHandler3>();