public void Publish <TEvent>(TEvent e) where TEvent : IDomainEvent { var handlers = _eventHandlerFactory.GetFor <TEvent>(); foreach (var handler in handlers) { handler.Handle(e); } }