protected void DispatchWhen(DomainEvent domainEvent) { ((dynamic)this).When((dynamic)domainEvent); }
protected void Apply(DomainEvent domainEvent) { mutatingEvents.Add(domainEvent); DispatchWhen(domainEvent); }