partial void CopyExtraPropertiesToClone(QueuedMessage clone, bool includeLocalProperties);
public QueuedMessage Clone(bool includeLocalProperties) { var c = new QueuedMessage { Body = Body, EnqueuedAt = EnqueuedAt, Id = Id, Subject = Subject, To = To.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }