Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Ambient Context pattern for domain events with static call and mock replacement
public interface IDomainEventDispatcher
{
void Dispatch<TEvent>(TEvent eventToDispatch) where TEvent : IDomainEvent;
}
public static class DomainEvents
{
public static IDomainEventDispatcher Dispatcher { get; set; }
public static void Raise<TEvent>(TEvent eventToRaise) where TEvent : IDomainEvent
{
Dispatcher.Dispatch(eventToRaise);
}
}
// raise your events in domain entities
DomainEvents.Raise(new NameChangedEvent(person.PersonId, person.Name));
//Unit test your dispatcher
var domainEventsDispatcher = new Mock<IDomainEventDispatcher>();
DomainEvents.Dispatcher = domainEventsDispatcher.Object;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.