public virtual Object Clone()
{
// Since we are the lowest level base class, do a
// shallow copy which will include the derived classes.
// From here we would do deep cloning of other objects
// if we had any.
Message o = (Message) this.MemberwiseClone();
if(this.messageId != null)
{
o.NMSMessageId = (string) this.messageId.Clone();
}
return o;
}