public static void CopyPropertiesFrom(this MPropertySettable self, MPropertyGettable other)
 {
     self.GetProperties().Intersect(other.GetProperties()).ToList().ForEach(
         property => self.SetValue(property, other.GetValue(property)));
 }
 public static object GetValue(this MPropertyGettable self, string name)
 {
     return(self.GetType().GetProperty(name).GetValue(self, null));
 }