public void StoreEvent(Event evt)
        {
            var args = new object[] { evt };

            var methods = GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public)
                .Where(m => m.Name == "Store")
                .Where(m =>
                {
                    ParameterInfo[] parameters = m.GetParameters();
                    return parameters.Length == 1 && parameters[0].ParameterType == evt.GetType();
                });

            var method = methods.FirstOrDefault();

            if (method != null)
            {
                method.Invoke(this, args);
            }
        }
 protected void Record(Event evt)
 {
     _uncommittedEvents.Add(evt);
 }