public void MergeInto(IDomainEventStore domainEventStore) { if (_mergedStore != null) throw new InvalidOperationException("This store has already been merged with another store."); var domainEventsToMerge = RetrieveAndClear(); _mergedStore = domainEventStore; foreach (var domainEvent in domainEventsToMerge) _mergedStore.Add(domainEvent); }