public virtual void AssignTo(NotificationObjectEx target)
 {
     Type t = this.GetType();
     PropertyInfo[] props = t.GetProperties();
     foreach (PropertyInfo p in props) {
         if (!p.IsTransient()) {
             p.SetValue(target, p.GetValue(this, null), ObjectUtil.EMPTY_OBJECTS);
         }
     }
 }
 public bool EqualsTo(NotificationObjectEx other)
 {
     Type t = this.GetType();
     PropertyInfo[] props = t.GetProperties();
     foreach (PropertyInfo p in props) {
         if (!p.IsTransient()) {
             if (!p.GetValue(this, null).Equals(p.GetValue(other, null))) {
                 return false;
             }
         }
     }
     return true;
 }