static void MementoRestore(IMementoContext ctx, ref SubWithListField item, object m)
 {
     SubWithListFieldMemento data = (SubWithListFieldMemento)m;
     Sub b = item;
     ATTi.Core.Mementos.Memento.RestoreBaseMemento<Sub>(ctx, ref b, data.BaseMemento);
     ATTi.Core.Mementos.Memento.RestoreMemento(ctx, ref item._values, data.SubSub_values);
 }
 static IMemento MementoCapture(IMementoContext ctx, SubWithListField item)
 {
     SubWithListFieldMemento m;
     m.BaseMemento = ATTi.Core.Mementos.Memento.CaptureBaseMemento<Sub>(ctx, item);
     m.SubSub_values = ATTi.Core.Mementos.Memento.CaptureMemento(ctx, item._values);
     return m;
 }