private static void replay(IEnumerable<Event> changeEvents, Aggregate aggregate) { foreach (var @event in changeEvents) try { aggregate.AsDynamic().Receive(@event); } catch (ApplicationException e) { if (e.Source == "ReflectionMagic") throw new MissingMethodException(aggregate.GetType().FullName, "Receive(" + @event.GetType() + ")"); throw; } }